An apartment is a logical container within a process for objects sharing the same thread access requirements. All objects in the same apartment can receive calls from any thread in the apartment. The .NET Framework does not use apartments, and managed objects are responsible for using all shared resources in a thread-safe manner themselves.
Full free-threading is available in .NET. MTA and STA stand for multithreaded apartment and single-threaded apartment, respectively. There is a great deal on threads in the documentation.