OK, so you are producing multiple tables within one HTML page, not multiple pages as suggested in your original post. In that case, the problem is exactly the same as outputting multiple items in one row of a table, which is discussed in the FAQ I referred you to. The general solution is along the lines
<xsl:for-each select="object[position() mod $N = 1]">
<table>
<xsl:for-each select=". | following-sibling::object[position() <= $N]">
<tr>
....
Or perhaps I've misunderstood the question yet again, and you only want to display the first five items and ignore the rest. In that case the above simplifies to
<table>
<xsl:for-each select="object[position() <= 5]">
<tr>
....
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference