You an do that in SQL dynamically as below
Create Table #columnNames(columnName varchar(40),ColumnDataType varchar(40),ColumnWidth varchar(10))
insert #columnNames select 'col1','varchar','10'
insert #columnNames select 'col2','int','0'
Declare @Query varchar(Max),@tableName varchar(20),@ColName varchar(200)
set @tableName='#Table1'
select @ColName=Coalesce(@ColName+', ','')+Cast(a.columnName as varchar(20))+' '+
Cast(a.ColumnDataType as varchar(20))+
(Case when a.ColumnDataType in ('varchar','nvarchar') then '('+a.ColumnWidth+')' else '' end)
from #columnNames a
set @Query='Create Table '+@tableName+' ('+@ColName+')'
Sp_execute exec (@Query)