ComACRsrvr.dll is a COM Automation Server, and as such can be accessed from C++ using an OS provided message queue. When done in this way, access is serialized through the message queue and there is no worry about its use and thread safety. This is how ACR-View, and the multi-threaded status example MFCStatusMT, use ComACRsrvr.dll. Accessing ComACRsrvr.dll from multiple threads without the serialized message queue is not recommended.
Note that internally ComACRsrvr uses threads and processes to separately handle things like reads and writes, status and file transfer, and the Ethernet Watchdog, and supports connection points (callbacks), so there should be no need to access ComACRsrvr.dll in a multithreaded way outside of the serialized message queue, e.g. it will be just as fast to use it in the prescribed way.