Unfortunateyl, there is no way in InfoPath to force table headers to automatically print across pages. It is definitely a deficiency. It may be possible to hack the XSL to do it, but it would be rather risky. There is one other thing you could try if your rows are of fixed height. You could redo the structure as a repeating section with some special logic. Here's what you'd do:
1) outer repeating section tied to your repeating node.
2) inner section #1 tied to or any child node. put a 1 row table in this to have a header row.
3) inner section #2 tied to any child node. put a 1 row table in this with same columns as the header row and put your actual data fields in here.
4) innser section #3 tied to any child node. insert a page break (from insert menu) in this.
5) put conditional formatting on the section #1 to only show if your "position()" is a multiple of say 25 (i'll let you figure out the formula) or if it's position()=1.
6) put conditional formatting on the section #3 to only show if the position is a multiple of 25 - 1 so that the page break comes right before the header.
This requires fixed height table rows and then you cna calculate it out and get a fairly good approximation of headers repeating at the top of each new page.
I hope this helps set you in the right direction. Thanks.
Shiraz Cupala / Microsoft InfoPath MVPQdabra® Software / Streamline data gathering to turn process into knowledge