My quick'n dirty solution.
Can easily be changed to work the DataTable / Rows.
If your data come from SQL server this can be done in SQL server directly (search for TSQL-STUFF function)
Output
cities1 cities2 cities3
city1 city2 city3
Code
private void Convert()
{
var csvData = new List<string>() { "cities", "city1", "city2", "city3" };
var csvOut = new List<string>();
var lstTemp = new List<string>();
for (int i = 1; i < csvData.Count; i++)
lstTemp.Add(csvData[0] + i.ToString());
csvOut.Add(string.Join("\t", lstTemp.ToArray()));
lstTemp.Clear();
for (int i = 1; i < csvData.Count; i++)
lstTemp.Add(csvData[i].ToString());
csvOut.Add(string.Join("\t", lstTemp.ToArray()));
Response.Write(string.Join("\r\n", csvOut.ToArray()));
}