Написание кода ниже на основе желаемого выхода.
Мне нравится - Всего строк 2, затем 6 предметов
1 3 5
2 4 6
Строк 3, а предметов 8, тогда
1 4 7
2 5 8
3 6
При условии следования за веткой - индексный массив на основе нуля
{% set TOTALITEMS = (products[category]|length) %}
{% set TOTALROWS = 2 %}
{% set ITEMSPERROW = TOTALITEMS / TOTALROWS %} <!-- make sure you get integer number only, if not then make it by helper functions of php / twig -->
{% for rowIndex in 0 .. TOTALROWS - 1 %}
<!-- start a div which will contain a row -->
{% for columnIndex in 0 .. ITEMSPERROW - 1 %}
<!-- here you have a item ready to dump in html -->
{% products[category][ (columnIndex * TOTALROWS) + rowIndex ] %}
{% endfor %} <!-- end of loop for columnIndex ...-->
<!-- end a div which contained a row -->
{% endfor %} <!-- end of loop for rowIndex ...-->