Um programa python simples faria o trabalho (e como isso não é realmente testado: faça backup do arquivo csv com antecedência!):
import csv
import sys
infile = sys.argv[1]
outfile = sys.argv[2]
with open(infile) as f:
reader = csv.reader(f)
cols = []
for row in reader:
cols.append(row)
with open(outfile, 'wb') as f:
writer = csv.writer(f)
for i in range(len(max(cols, key=len))):
writer.writerow([(c[i] if i<len(c) else '') for c in cols])
Você pode salvar isso em um arquivo "my_csv_transposer.py" e chamá-lo da linha de comando da seguinte forma:
python my_csv_transposer.py <theinfilename> <theoutfilename>