Not sure what you want to achieve, because the headers of columns haven't changed.
Assuming that you want to add rows based on column names, you can use something like that:
DataTable dt = ds.Tables[0];
dt.Columns.AddRange(names.Select(x=>new DataColumn(x)).ToArray());
var row2 = dt.Columns.Cast<DataColumn>()
.Select(c=>c.ColumnName.Split('-')[0])
.ToArray();
var row1 = dt.Columns.Cast<DataColumn>()
.Select(c=>c.ColumnName.Split('-')[1])
.ToArray();
dt.Rows.Add(row1);
dt.Rows.Add(row2);
Result:
WK1-600 WK1-700 WK1-800 WK2-600 WK2-700 WK2-800 WK3-600 WK3-700 WK3-800 WK4-600 WK4-700 WK4-800
600 700 800 600 700 800 600 700 800 600 700 800
WK1 WK1 WK1 WK2 WK2 WK2 WK3 WK3 WK3 WK4 WK4 WK4