Yes, you can use one grid instance on any tab page.
You will probably add the new tabpage in runtime to the tabControl.TabPages collection, then switch the tabcontrol.SelectedIndex to display the newly added tabPage.
Just add an event handler for the tabControl.SelectedIndexChanged. This sample moves the single dataGridView instance into the Controls collection of the selected tabPage. It will automatically be removed from the Controls collection of the previous tab. The Location or Dock values for the dataGridView will be reapplied so that it appears to be in exactly the same place on each tab.
If you need to persist the dataSources used for the grid on each tab while letting the user choose different tabs, use a list that you add to or remove as needed, then you can swap the dataGridView.DataSource here too. Keep in mind that if you use larger datasources you might reconsider persistence and/or handling update delays. The time to 'move' the grid instance between collections is nominal.
List<BindingList<SomeBindableClass>> _bindingLists = new
List<BindingList<SomeBindableClass>>();
private void onTabControlSelectedIndexChanged(object sender, EventArgs e)
{
TabControl tControl = (TabControl)sender;
tControl.SelectedTab.Controls.Add(this.dataGridView1);
this.dataGridView1.DataSource = _bindingLists[tControl.SelectedIndex];
}