If updating the visuals within the generation isn't working (because the screen freezes), maybe the html/javascript system itself is just overloaded. However, if it's ok waiting a little more, you could do a natural pause while generating.
What I mean is, for example... Minecraft.
Minecraft generate thousand of tiles (and doesn't have a progress bar), however, the game generates in a interesting way... it loads chunk by chunk, instead of block by block... (a chunk is an area of 16x16x256 blocks) also, it generates the chunks only when needed. It doesn't generate all the blocks in the world, just the "visible" ones.
With that, you can not to load the entire world with 100,000 tiles at once. Maybe what you need is a slower process loading on groups of tiles (a cave or a biome, etc) and on those intervals refresh the information to the user on the UI. After all, 100,000 tiles...! I can't even count on my fingers!