You'll have to give us some idea of where the iframe is in the html. The only way a table could be displaying on top of an iframe is if the table (or an element in the table's parent chain) has a z-index higher than the iframe (or an element in the iframe's parent chain).
When I first wrote xTable I had ideas for making it support the locking of any number of rows and cols - but I didn't have time to go that far with it. I would like to rewrite that object - some day perhaps.
Be sure to use a DOM Inspector to see how the dynamically created elements are structured. The table is removed and in its place is inserted a DIV (class xtRoot) which contains three DIVs. They are absolutely positioned within the relatively positioned xtRoot. Those three are the frozen row container, the frozen col container and the table container.
The frozen row and col containers have "inner containers" in order to implement simulated scrolling. An inner container has a DIV for each cell found in the original row or col (which eventually gets removed). In each of these "cell DIVs" is a one-celled table. I didn't, and still don't, like inserting a table for every cell in the frozen row or col - but it was a compromise - I was running out of time to put into it. Getting a frozen cell's contents to retain its original styling meant it had to be in a table cell. Getting the frozen cells to align and scroll in sync with the table proved to be quite tricky ;-) especially getting it to work cross-browser - so that also resulted in some compromises.