When you use the default Forms 2.0 embed code, the form descriptor loads asynchronously. This means the inner HTML of the <form> tag isn't rendered until after the initial scaffolding of the page is finished drawing (often immediately after, but always after).
(The descriptor is the meat of the form config, managed in Form Editor: the fields, field order, validation rules, inter-field dependencies, custom CSS styles, all that stuff.)
Let me take care to say that this is a totally sensible default. Marketo can't know how many other asynchronous components are present on your page. You could have multiple content panes filled via Ajax, as and a bunch of other 3rd-party asynchronous widgets. In the absence of other info, and not knowing if the site is a complex corporate website or a simple (non-Marketo) LP, it makes sense to not have the form block other parts of the page from loading.
Nevertheless, in practice you may notice an uncomfortable reflow of other elements as the <form> builds out its content, bulging into a larger area of the page. Floats can shift to a new row and such.