No, It is Immpossible. As usual, with attributes like this, the attribute is [ThreadStatic]recognized by jitter. It generates a call to the CLR to get a pointer to the local thread store for the class. There are several versions of this helper method, the main one is JIT_GetSharedGCThreadStaticBase(). But it becomes more confusing for a general class, for example, it can have several static variables based on a type parameter. The helper function accepts two non-obvious arguments, the module identifier and the class identifier. These identifiers depend on the AppDomain in which the code was downloaded.
In short, you cannot make the same call, and the helper method does not even accept the thread identifier, this is implied by the call context.
Thread.AllocateNamedDataSlot(). , , .
. - , -. , , . -, , . , , , ManagedThreadId.