Search around on the web for a split()
function. This isn't hard. Google "SQL Server split" and you'll have lots of choices. You actually want one that give you a second return value, the position of the substring in the larger string.
Then:
select t.*, newcols.*
from table t cross apply
(select max(case when pos = 1 then val end) as col1,
max(case when pos = 2 then val end) as col2,
max(case when pos = 3 then val end) as col3,
max(case when pos = 4 then val end) as col4,
max(case when pos = 5 then val end) as col5,
max(case when pos = 6 then val end) as col6
from dbo.split(t.col, '.') as s(val, pos)
group by t.col
) newcols;