Cheddar, 27 bytes (non-competing)
s->s.chunk(s.len**.5).vfuse
I added the .chunk
function a while ago but I removed it in the transition to the new stdlib format and forgot to re-add it. Cheddar has a dedicated sqrt
operator but **.5
is shorter
Explanation
s -> // Function with argument s
s.chunk( // Chunk it into pieces of size...
s.len ** .5 // Square root of length.
).vfuse // Vertical-fuse. Join on newlines