вот к примеру моя хлска горячих предложений... (учтите что она модернизирована под мои нужды...)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:decimal-format name="my" decimal-separator="," grouping-separator=" "/>
<!-- МагазинКаталогТоваровНаГлавнойСпецПред -->
<xsl:template match="/">
<xsl:apply-templates select="/shop"/>
</xsl:template>
<!-- Шаблон для магазина -->
<xsl:template match="/shop">
<!-- Есть товары -->
<xsl:if test="item">
<div class="ramka shadow bg_white padding_in_3 margin_bottom_5">
<h1>
Горячие предложения
</h1>
</div>
<!-- Выводим товары магазина -->
<div class="indent">
<table width="100%" class="main_table">
<tbody>
<tr>
<xsl:apply-templates select="item"/>
</tr>
</tbody>
</table>
</div>
</xsl:if>
</xsl:template>
<!-- Шаблон для товара -->
<xsl:template match="item">
<td>
<div style="margin:0 17px 17px 0;">
<table class="ramka shadow bg_white padding_in_3" width="253px" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" height="30px">
<!-- заголовок -->
<div class="title" style="height:30px;padding-right:10px">
<a href="{/shop/path}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</div>
</td>
</tr>
<tr>
<td height="170" align="center">
<xsl:choose>
<xsl:when test="small_image!=''">
<a href="{/shop/path}{fullpath}/">
<img src="{small_image}" class="image" />
</a>
</xsl:when>
<xsl:otherwise>
<a href="{/shop/path}{fullpath}/">
<img src="/images/noimage.png" class="image" />
</a>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</table>
</div>
</td>
<xsl:if test="position() mod 3 = 0">
<xsl:text disable-output-escaping="yes">
</tr>
<tr>
</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
ну а теперь укажу нужные вам места...
за количество колонок отвечает этот блок
<xsl:if test="position() mod 3 = 0">
<xsl:text disable-output-escaping="yes">
</tr>
<tr>
</xsl:text>
</xsl:if>
в нем вместо 3 ставите нужное вам количество колонок(они же столбцы)...
если нужно например 4 столбца, то этот блок принимает вид
<xsl:if test="position() mod 4 = 0">
<xsl:text disable-output-escaping="yes">
</tr>
<tr>
</xsl:text>
</xsl:if>
так что если не поможет - приведите вашу хлску, подправим в нужном вам виде...