To transpose a N rows x M columns file into a M rows x N column file, one approach is to read the whole file in memory as a bidimensional array, and finally print it transposing rows and columns (the example assumes comma separated fields; adapt to your real data):
BEGIN{FS=","}
{for(i=1;i<=NF;i++)a[NR,i]=$i}
END{
for(i=1;i<=NF;i++){
for(j=1;j<=NR;j++){
line=line sep a[j,i]
sep=FS
}
print line
line=sep=""
}
}
NR is our N, and NF is our M here. In the END block, for M times, the output is built line-by-line and after N values are concatenated, the line is printed and set back to empty, ready for building the next line.