Если правильно понял суть задачи, то рекомендую попробовать задать флекс контейнеру display flex, flex-direction column и flex-wrap wrap.
Второе, надо задать высоту контейнеру. Например, в столбик хотим задать три строчки, можно сделать так: задать line-height 1rem, задать font-size, а высоту для контейнера задать так: flex-basis 3rem. По идее все, контент будет располагаться по вертикали, ровно в три строки, все остальное будет переноситься на следующий столбик. Для распределения столбиков надо использовать свойство align-content (flex-start, flex-end, center, space-between, space-around). Это свойственно задает распределение пространства между столбиками, задавать его надо контейнеру.