Would something like this be efficent?
DataTable myTable = new DataTable();
myTable.Columns.Add("Col1");
myTable.Columns.Add("Col2");
myTable.Columns.Add("Col3");
myTable.Columns.Add("Col4");
myTable.Columns.Add("Col5");
myTable.Rows.Add(new object[] { "hey", "hey", "Hey", "hey", "Hey" });
GridView1.DataSource = myTable;
GridView1.DataBind();
DataTableReader myReader = myTable.CreateDataReader();
DataTable myTable2 = new DataTable();
myTable2.Load(myReader);
myTable2.Columns.Remove("Col3");
myTable2.Columns.Remove("Col4");
GridView2.DataSource = myTable2;
GridView2.DataBind();