Creo lo que necesitas es un codigo condicional dentro del for-each que llame a un template u otro (o al mismo con distintos parámetros) en función del "número de bucle" actual, lo cual se comprueba con "
position()"
Ejemplo:
Código:
<xsl:choose>
<xsl:when test="position() <= 1">
<xsl:call-template name="CuadroDetalle1"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="CuadroDetalleN">
<xsl:with-param name="pi_vez" select="position()"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>