Well...
I hate to provide ready-to-use solution, but tonight i'm gonna to make an exception ;)
Option Explicit
Sub SortAndExportData()
Dim wbk As Workbook
Dim srcwsh As Worksheet, dstwsh As Worksheet
Dim rangeToSort As Range
Dim i As Integer, r As Integer, c As Integer, divider As Integer
Set wbk = ThisWorkbook
Set srcwsh = wbk.Worksheets("Sheet2")
Set rangeToSort = srcwsh.UsedRange
With srcwsh.Sort
.SortFields.Clear
.SortFields.Add Key:=rangeToSort.Cells(1, 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.SetRange rangeToSort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Set dstwsh = wbk.Worksheets("Sheet1")
dstwsh.UsedRange.Delete Shift:=xlShiftUp
divider = 3
r = 2
c = 0
For i = 2 To rangeToSort.Rows.Count
dstwsh.Range("A1").Offset(ColumnOffset:=c) = "Ctrl#"
dstwsh.Range("B1").Offset(ColumnOffset:=c) = "Note"
dstwsh.Range("A" & r).Offset(ColumnOffset:=c) = rangeToSort(i, 1)
dstwsh.Range("B" & r).Offset(ColumnOffset:=c) = rangeToSort(i, 2)
r = r + 1
If CInt(i - 1) Mod divider = 0 Then
r = 2
c = c + 2
End If
Next
Exit_SortAndExportData:
On Error Resume Next
Set wbk = Nothing
Set dstwsh = Nothing
Set srcwsh = Nothing
Set rangeToSort = Nothing
End Sub
Feel free to change it to your needs!