Eine TCriticalSection ist auch nur ein Object, welches sich intern selbst absichert.
Also kannst du allen Threads eine Kopie der TCriticalSection-Variable übergeben.
z.B.:
thread := TMyThread.Create(cs{: TCriticalSection});
mußt die nur einen passenden Constructor erstellen