Если без javascript:
1. Можно задать всем min-height, если его возможно рассчитать
1.1 Можно min-height не самому блоку, а его ребенку, который его растягивает. Или же использовать для такой детки text-overflow (
htmlbook.ru/css/text-overflow)
2. Каждую строку положить в свой контейнер
3. Используя медиа запросы в css добавлять через after clear:left для каждого расcчитанного :nth-of-type
3.1 Если блоков всегда 3 в ширину, то просто :nth-of-type(3n+1) {clear:left;}