UI controls can only be accessed from the thread they are created on (the UI thread). If you try to do so from a different thread, you get the error.
You need to Invoke the control. Here is a generic way to do it:
private void AddNewTab(string tabName)
{
if (InvokeRequired)
{
Invoke(new MethodInvoker(delegate { AddNewTab(tabName); }));
}
else
{
TabPage tp = new TabPage(tabName);
myTabControl.TabPages.Add(tp);
}
}