Я не гарантирую, что это сработает (я устал сейчас), но что-то вроде этого должно сработать:
// let's say that arr == [0,1,2,3,4,5,6,7,8]
result = []
for(i=0; i<=arr.length-step; i+=step)
{
row = []
for(j=i; j<i+step && j<arr.length; i++)
row.push(arr[j]); // or arr[j].image_url or whatever you need
result.push(row);
}
// result is now something like [[0,1,2],[3,4,5],[6,7,8]]