In a single-server environment (as you would have when developing a Meteor app), you get one nodejs thread. In order to allow multiple processes to use that thread without (apparently) blocking other processes, node uses something called the event loop (there’s a good explanation here: http://softwareengineeringdaily.com/2015/08/02/how-does-node-js-work-asynchronously-without-multithreading/).
In order to simplify code writing, Meteor’s server uses coroutines (with the Fibers package) to give the appearance of synchronous code. This avoids the “callback hell” which has traditionally been the result of coding for node. It does not preclude multiple clients from running the same method “simultaneously” on the server. However, it does mean that any one client’s method calls will run in sequence (unless you explicitly change that behaviour).
The situation becomes more difficult to reason about in a scale-out, production environment, where there is no co-operation between server instances (each gets an independent thread, doing its own thing).
If you really believe that you need resource locking between clients I think you’ll have to do it yourself.