Since I was working on it anyways, just throwing out another option that uses internal arrays for speed to rearrange
Option Explicit
Sub test()
Const cSrc As String = "M1"
Const cDest As String = "O1"
Const cWidth As Long = 22
Dim rSrc As Range
Dim V1 As Variant, V2() As Variant
Dim r As Long, c As Long
Set rSrc = Range(Range(cSrc), Range(cSrc).End(xlDown))
V1 = Application.WorksheetFunction.Transpose(rSrc.Value)
ReDim Preserve V2(0 To (UBound(V1) / cWidth) - 1, 0 To cWidth - 1)
For r = LBound(V1) - 1 To UBound(V1) - 1
V2(r \ cWidth, r Mod cWidth) = V1(r + 1)
Next r
Range(cDest).Resize(UBound(V2, 1) + 1, UBound(V2, 2) + 1).Value = V2
End Sub