Iβd try to use increment and decrement operations to a control field in the object to do that. You can use live query to have real-time update on that at the client.
I agree with the suggested custom solution. There are many different concurrency lock management concepts and rules, from write before read, single/multi-read, exclusivity aspects, etc. I think a built-in solution would have a hard time satisfying many.