FYI, you can create and use a VCL TBitmap in a worker thread, you just have to lock the bitmap's Canvas to prevent the main thread from releasing the bitmap's GDI resources.
The new TControl.RaiseOnNonMainThreadUsage property was introduced in 11.0 Alexandria:
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/What's_New#Threading_safety_improvement
However, it is currently only being used by the VCL when a TWinControl's window is created, not when it is accessed. Fortunately, there is a new TControl.CheckNonMainThreadUsage() method that is public, so you can call it for your own purposes before you access a UI control's members.