Dynamically creating a new tab in a TabControl is pretty simple.
Here is some code to put in your button_Click() :
TabPage myTab = new TabPage("My TabPage");
Label myLabel = new Label();
myLabel.Text = "This is a label";
myTab.Controls.Add(myLabel);
tabControl1.TabPages.Add(myTab);
This is kinda weird to instantiate your controls manually though, you may want to create a UserControl instead.
After created your UserControl, you can easily add it to your TabPage the same way :
myTab.Controls.Add(new MyUserControl());
If you create your controls manually, you should know how to populate them, however, if you decide to use a UserControl, pass an ID or an entity as a parameter to your UserControl constructor and populate it.