Technically, it is possible. We had someone who used Windows API calls to activate multiple threads to use external WinSock routines. It was a nightmare worse than putting badgers in a burlap sack and swatting them with a wooden slat. However, if you aren't playing with the API libraries, you are correct. Access cannot operate asynchronously. HOWEVER, there is a loophole.
When Access is talking to either JET or ACE, the old or new Access SQL engine, those tasks are ALSO synchronously coded AND they communicate with the front-end over synchronous I/O channels. That is because when Access was first built, there was no such thing as a multiprocessor PC. Nobody built a process fork/rejoin operation because the CPU wasn't going to timeslice anyway. The first versions of Access ran in the Windows environment, but that was a layered GUI app running on top of MS-DOS, which was single-threaded. Besides that, using native Access back-ends, it is the processor on the front-end that is actually doing the work anyway.
When you talk to any SQL-based but independent server (SQL Server, My SQL, ORACLE, SYBASE, etc.), those ARE written to allow parallel operation of multiple queries. (Actually, not going to swear that My SQL does that, but the others ABSOLUTELY do.) You CAN give any of those DB systems a query and maintain a connection that you could monitor while the query progresses. We've had many threads on this forum that actually do that. The loophole I mentioned earlier works because the processor on the back-end machine neither knows nor cares about what the processor is doing on the front-end machine. There are two independent and grudgingly cooperative processes at work.