dlc - will be another day before I get FrontPage, .NET Framework, etc back up and running so can't specifically test.
I just noticed in your code you are trying to set the headers at the top of the DG - can't do that since DG row cannot be held static. You need to have the header inside an html table (DIV holding html table holding DG). Put your widths inside the DG Column tag (style="..").
This feat you are trying to accomplish I think is doable, but it is an exercise in maintaining a completely 'tight' ship as to accentuate problems (such as possibly using some type of word wrap within the Grid cell, etc).
For example, in your code I see that the DG has a width of 780px while the DIV tag is set to a width of 808px. Perhaps you can set the DIV tag to equal the DG's width.
Again, the assignment of widths within the style statement of the DG's Column tag should generally behave. If the information within the cell is longer than the width set for that column, one or two things I suppose can happen. Either the text can wrap, or cause the DG to open up its width (keeping in mind that the DIV tag perhaps should be placed around an html table, and the DG inside the html table -with the html table providing the header in its first row.)
As I mentioned earlier, it was easy for me as I had an image across the DG Columns with a particular width -- had I faced a text problem I would have set all the widths in the DG and looked at example where the text might be expected to open up the column width, and see if I could not find a way to get the text to wrap.
This is one of those intense tweaking situations where if you're even off 1 px it will make a diff. When I get dot NET back I'll run the above code.