Mit Hilfe eines Kommentars auf Stackoverflow habe ich folgende Lösung gefunden:

HTML-Code:
<xsl:for-each select="//item[position() mod 3 = 0 and contains(@name, 'Point')]">
<tr>
    <td>
        <xsl:value-of select="position()"/>
    </td>
    <td>
        <xsl:value-of select="format-number(@value, '0.00')"/>
    </td>
    <td>
        <xsl:value-of select="following-sibling::item[contains(@name, 'Value2')]/@value"/>
    </td>
    <td>
        <xsl:value-of select="following-sibling::item[contains(@name, 'Value3')]/@value"/>
    </td>
    <td>
        <xsl:value-of select="@name"/>
    </td>
</tr>
</xsl:for-each>
Als kleiner Schönheitsfleck bleibt noch die Konstante für die Modulo-Operation, die angepasst werden muss, wenn sich die Anzahl values pro Punkt ändert.

Grüße,
Paul