In general, how a browser interprets code varies. The whole point of HTML (at least, as it is applied today) is to simply describe content, rather than to present it, so techniques may be wildly different. Almost all browsers these days dynamicly render things over and over as more information is downloaded. Further refreshes may occur if Javascript, DOM, or other dynamic HTML techniques are used.
All browsers have to parse the HTML into a tree, which is constantly expanded and updated as code is parsed. The code is "upscaled" into a more modern or otherwise fundamental languages, such as SGML or XML. Hardly any web browsers use HTML properties internally. Various proprietary techniques are used to fix broken code. I believe most tag attributes are parsed right-to-left.
Rendering depends on the engine. They usually start with text, then tables and sections, CSS (if supported), and then objects, such as images. Everything has a priority set to it -- some browsers respect the priorities set by the W3C, some don't. Basicly, the stuff that's easiest to draw will be rendered first. This improves resposiveness, at the expense of having to draw the page more often.
Older browsers used to start drawing stuff right away in chunks, usually separated with
,
, and header tags. That allowed people to start reading (sometimes ugly) content while they were waiting for the rest of the page to load.
These days, such rendering techniques cause all kinds of visual havoc, such as the infamous Flash of Unstyled Content, and widths and other layout properties are rarely described in the HTML source, so browsers tend to download more content before rendering a page.