I don't know if you are going to be able to solve this, certainly not easily. Your page is loading correctly, and the image is the 8th resource requested (as seen in HttpFox). A website is parsed basically line by line in order. Your site is loading the HTML, then the stylesheet, several resources while the stylesheet downloads and parses (my interpretation), and then your background image. Your image is huge and takes a 12 seconds to download per a test at webpagetest.org You can't really make the image show up before it downloads, and honestly, do you really want to make people wait 12 seconds to see anything even if you could? The image is decoration. It isn't critical. Do you really want to lose traffic over it?
There are things you can do to help though. First, that image is enormous. Is there nothing you can do to decrease it's size? I mean, why all the whitespace in the center of the image? You are only using the outside edges. Secondly, encourage caching. Put this in your .htaccess
file.
<FilesMatch "\.(ico|jpg|jpeg|png|gif|swf)$">
ExpiresActive On
ExpiresDefault "access plus 2 weeks"
</FilesMatch>
Also, I posted on another topic about caching if you want to check that out.
Edit:
Ok. It looks like you have a number of scripts loading inline, like this one <script type="text/javascript">var vclk_options = {sid:64560,media_id:1,media_type:1,version:"1.3"};</script>...
which loads inside <div id="headAdvert">
. Those inline scripts are going to 'block' your page load until they complete. You are going to have to load those after your content of the page to prevent that. Do those ad server's not have asynchronous scripts that you can use instead? Something like this one?