Just thinking out loud, without trying this, but I think it ought to work...
You could try to get the table view's frame (ie NOT the enclosing scroll view's frame), and then resize the enclosing scroll view's frame to fit that vertical size, and then resize the scroll view's enclosing superview's frame by the same amount.
Of course, if it ends up being taller than a single page, you've then got to think about forcing the location of page breaks to be between table rows, not in the middle of a table row, but there are NSView methods for this.