CSS -Сетка может сделать это, если вы определите максимальное количество строк.
Пример с 5 строками ...
.container {
display: inline-grid;
grid-template-rows: repeat(5, max-content);
grid-auto-flow: column;
gap: 1em;
padding: 1em;
}
.field {
border: 1px solid red;
padding: .5em;
background: lightblue;
}
<div class="container">
<div class="field">element 1</div>
<div class="field">element 2</div>
<div class="field">element 3</div>
<div class="field">element 4</div>
<div class="field">element 5</div>
<div class="field">element 6</div>
</div>
Пример с 15 элементами и 4 строками ...
.container {
display: inline-grid;
grid-template-rows: repeat(4, max-content);
grid-auto-flow: column;
gap: 1em;
padding: 1em;
}
.field {
border: 1px solid red;
padding: .5em;
background: lightblue;
}
<div class="container">
<div class="field">element 1</div>
<div class="field">element 2</div>
<div class="field">element 3</div>
<div class="field">element 4</div>
<div class="field">element 5</div>
<div class="field">element 6</div>
<div class="field">element 7</div>
<div class="field">element 8</div>
<div class="field">element 9</div>
<div class="field">element 10</div>
<div class="field">element 11</div>
<div class="field">element 12</div>
<div class="field">element 13</div>
<div class="field">element 14</div>
<div class="field">element 15</div>
</div>