Die Lösung sollte am besten ohne JS möglich sein.
"Geht nicht".
Mit CSS und JavaScript ist das aber möglich.
Mittels float oder inline-block erzeugst du dein Raster mit automatischen Umbrüchen. Damit die Elemente jeweils die restbreite auffüllen und dynamischen wachsen oder schrumpfen musst du mit ein bisschen JavaScript nachhelfen und das resize-Event überwachen.