If you use the <img> tag (rather than using CSS background-image) then set appropriate alt text (ie, if the image is a graphic saying "Products" then you want <img src="products.png" alt="Products">) – anyone who can't see the image for whatever reason (eg screen readers and search engines) will see/hear the alt text instead.
Can a graphic (image) somehow be designated as an html heading (h1, h2 etc)?
Yes. Just put it in the code as you would anywhere else, eg <h1><img src="products.png" alt="Products"></h1>
There are alternative ways of doing that, using CSS background-images. While they're slightly more sophisticated and can be a bit more effective and user-friendly, they're also more complicated from your point of view. If you want to keep it simple, this way is perfectly OK. If you want to go for gold, have a look at CSS image replacement.
When inserting a background image is there any need to specify its dimensions?
Not only is there no need, it isn't possible.
Any image that you're putting in the HTML (ie, with an <img> tag) should have its height and width specified so that the browser can get on with the job of laying out the page without having to wait for the image to finish loading. But any image that you're putting in the CSS (ie, as a background-image) is not going to affect the page layout, so it doesn't matter. All you need to do is to decide whether you want it to repeat in one or both directions, and to include that in the CSS.
Is there a maximun (practical) total size (KB or MB) for a webpage, and how would I calculate it?
As small as possible! No, there's no absolute maximum, and it really depends what you've got on the page. I would try to keep it under 200KB for the total download if you can, but for some sites that just isn't practical. To calculate the total size, just add up the size of the file itself plus each individual image, script and stylesheet that it uses. (For repeat visitors, or visitors hitting on several pages on your site, they should only have to download the full whack once, and the scripts and styles etc will be cached on subsequent visits).
Alternatively, you can check it on a site like this one: www.websiteoptimization.com/services/analyze/
When laying out a standard column-type page, is there any advantage to using Absolute Positioned Divs for the side columns, over using negative margins? What do most people do?
Absolute positioning can be very powerful, but can also cause a lot of problems. I would generally try to avoid using it unless there's no other way to achieve what you want. The dangers of absolute positioning are that it's all too easy to create rules that go totally pear-shaped on a different setup, eg with a different window size or text size, whereas relative positioning and margins can accommodate varying size and length of content much more reliably.
(Given the number of really badly written websites out there, the answer to the second question won't necessarily be helpful!)