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;