variant using scripting.dictionary:
Sub test()
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
dic.comparemode = vbTextCompare
Dim cl As Range
For Each cl In [A1:A6]
If Not dic.exists(Split(cl.Value, ".")(1)) Then
dic.Add Split(cl.Value, ".")(1), cl.Value
Else
dic(Split(cl.Value, ".")(1)) = dic(Split(cl.Value, ".")(1)) & "|" & cl.Value
End If
Next cl
Dim x%, i%, dKey, sVal
x = 3
For Each dKey In dic
i = 1
For Each sVal In Split(dic(dKey), "|")
Cells(i, x).Value = sVal
i = i + 1
Next sVal
x = x + 1
Next dKey
End Sub
Demo: