You can’t. UI operations must be performed on the owning thread. Period.
What you could do, is create all those items on a child thread, then call Control.Invoke
and do your databinding there.
Or use a BackgroundWorker
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += (s, e) => { /* create items */ };
bw.RunWorkerCompleted += (s, e) => { /* databind UI element*/ };
bw.RunWorkerAsync();