Here are two ways.
Local $sStr = "12" & @CRLF & "34" & @CRLF & "56" & @CRLF & "7" & @CRLF & "89" & @CRLF & "10" & _
@CRLF & "11" & @CRLF & "13" & @CRLF & "14" & @CRLF & "15" & @CRLF & "16" & @CRLF & "99" & @CRLF
Local $iCols = 5
ConsoleWrite(_StringDisplayRE($sStr, $iCols) & @LF)
ConsoleWrite(_StringColumnDisplay($sStr, $iCols) & @LF)
MsgBox(0, "RE Display in " & $iCols & " columns.", $sStr & @LF & _StringDisplayRE($sStr, $iCols))
MsgBox(0, "Text Display in " & $iCols & " columns.", $sStr & @LF & _StringColumnDisplay($sStr, $iCols))
Func _StringDisplayRE($sStr, $iNumOfCol = 1)
If $iNumOfCol < 1 Then $iNumOfCol = 1
Local $a = StringRegExpReplace($sStr, "(.*[^v])(?:v+)", "${1},")
Local $iNum = @extended
Local $extra = Mod($iNumOfCol - Mod($iNum, $iNumOfCol), $iNumOfCol)
If $extra <> 0 Then $a &= StringRegExpReplace(StringFormat("%" & $extra & "s", " "), ".", ",")
Return StringTrimRight(StringRegExpReplace($a, "((?:[^,]*,){" & ($iNumOfCol - 1) & "}(?:[^,]*))+?,", "$1$2" & @LF), 1)
EndFunc ;==>_StringDisplayRE
Func _StringColumnDisplay($sStr, $iNumOfCol = 1)
If $iNumOfCol < 1 Then $iNumOfCol = 1
Local $sRet
Local $aLines = StringRegExp($sStr, "(?:([^v]+)(?:v+|$))", 3)
Local $iNumLines = UBound($aLines)
Local $extra = Mod($iNumOfCol - Mod($iNumLines, $iNumOfCol), $iNumOfCol)
For $i = 1 To $iNumLines + $extra
If $i < $iNumLines + 1 Then
If Mod($i, $iNumOfCol) Then
$sRet &= $aLines[$i - 1] & ","
Else
$sRet &= $aLines[$i - 1]
If $i < $iNumLines + $extra Then $sRet &= @LF
EndIf
Else
If $i < $iNumLines + $extra Then $sRet &= ","
EndIf
Next
Return $sRet
EndFunc ;==>_StringColumnDisplay