Check this:
CREATE TABLE #tmp (TName VARCHAR(30), Scode VARCHAR(30))
INSERT INTO #tmp(TName, Scode)
VALUES('AKAT', 'Allow1'),
('AKAT', 'Allow2'),
('AKAT', 'Allow3'),
('AKAT', 'Allow4'),
('AkCT', 'Allow1'),
('AKCT', 'Allow2'),
('AKCT', 'Allow3'),
('AKST', 'Allow1'),
('AKST', 'Allow2'),
('AKST', 'Allow3'),
('AKST', 'Allow4'),
('AKST', 'Allow5')
DECLARE @cols NVARCHAR(4000) = STUFF((SELECT DISTINCT '],[' + TName
FROM #tmp
ORDER BY '],[' + TName
FOR XML PATH('')) , 1, 2, '') + ']'
DECLARE @Qry NVARCHAR(MAX) = N'
SELECT RowNo, ' + @cols +
'FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY TName ORDER BY Scode) As RowNo, *
FROM #tmp
) dt
PIVOT (MAX(Scode) FOR TName IN(' + @cols + ')) pvt'
EXEC(@Qry)
DROP TABLE #tmp
Result:
RowNo AKAT AkCT AKST
1 Allow1 Allow1 Allow1
2 Allow2 Allow2 Allow2
3 Allow3 Allow3 Allow3
4 Allow4 NULL Allow4
5 NULL NULL Allow5