JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="out"></pre>

JavaScript

const columnize = (items, rows) => {
  const toColumns = (table, item, iteration) => {
    let row = iteration % rows

    table[row] = table[row] || []
    table[row].push(item)

    return table
  }
  
  return items.reduce(toColumns, [])
}

const numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ]

let out = document.getElementById('out')
let list = columnize(numbers, 5)

for (var column in list) {
    console.log(column, list[column]);
    var item = list[column]
    var line = item.reduce((line, item) => line + item + '    ', '')
    
    out.textContent += line + ' \n'
}