Maybe your margin or header/footer settings in IE8 aren't leaving enough printable area on the page to fit a block that is 880px tall. That would force the browser to crop the inline-block div rather than bumping it to the next page (and taking the table with it). Removing any headers or footers and setting your margins to 0.5" in IE8's Page Setup should give you 960px of vertical space to work with, which would allow the 880px inline-block div to be bumped instead of cropped.
As for the specs, I've never really looked into them that deeply, but I suspect that there is a lot more gray area for paged media than for continuous.
What do you mean by "changing dimensions"? Any change in the vertical dimension (height) of the header row or first data row must be accompanied by a corresponding change in the height of the inline-block div. The formula for calculating the height of the inline-block div is as follows:
header row height + first data row height + 3px (to account for borders)
If you do not zero out the cell padding as I did in my example, then you must include it in the calculation. Also, the negative margin that positions the inline-block div behind the table must always be equal to the height of the div.
Note that the negative margin is NOT applied to the inline-block div itself, but to a separate div placed directly below it. Applying the negative margin to the inline-block div itself will cause it to be cropped by the page break instead of bumped to the next page along with the table.
Does my code work for you if you copy it exactly? If not, then I must be wrong about inline-blocks being unbreakable, which is going to cause me more problems than just orphaned headers.
If I can get this to work, it would at least allow me to avoid throwing in extra divs that have no obvious purpose.
In my testing, inline-table works similarly to inline-block in that it makes the whole element unbreakable. Obviously, any unbreakable element that is larger than the printable area is going to get cut off.
One interesting thing I've discovered is that Firefox does seem to be smart enough to prevent a table footer from being widowed (i.e. separated from the last data row by a pagebreak). I'm sure table footers are used much less frequently than table headers, so it's strange that they work correctly while headers don't.
The thing that's been troubling me since I started working on printing is how lopsided the buggyness has been in IE's favor. It's really beginning to make me question my worldview. Maybe IE9's printing will restore the proper balance to the cosmos by being a total disaster.