I'm not sure I fully understand your problem, but my initial thoughts are that you can dynamically create a datagrid or something similar for each tab you dynamically create. Then you can snap the data source to the grid, and then add the grid as a control to your tab.
Sort of...
DataGridView gv = new DataGridView();
gv.DataSource =
this.tabPage1.Controls.Add(gv);
After that, you will have all the events related to the grid.