Question: If a site is using top-level navigation, how can content come before navigation (in the markup, not the presentation), and is this really necessary?
I couldn't disagree with this more. IMO, your site navigation should come ahead of SEO (may be not a popular opinion). This allows pages to have the general navigation displayed in Google: EG amazon https://www.google.co.uk/search?q=amazon&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
And since your site navigation is typically quite a small list (you get more navigation options from clicking these 'general route level menu links' which allow you to drill deeper) I don't think there is any penalization at all - to swap the whole page around could make maintenance more difficult, but will certainly not read well to Google IMO.
However, ensuring that the page content is pretty much the next thing that is read by Google is important. Use a lynx viewer or similar - again, my opinion but after the menu, there should be a heading tag and content / about the page (even before products - from as little as a paragraph).