Surprisingly there is no tool to support multi client scenarios and synchronization out of the box as far as I know (looking for a new startup idea ?).
The general architectural problem you are trying to solve is one test, running somewhere, while controlling and getting feedback from N clients. This means you'll need the following building blocks:
A central management system to orchestrate tests and resources. Queuing test jobs, assigning clients and a machine to execute the test itself, be the hub for communication and generate test results.
A machine to run the test on, physically this can be the same machine as the central management runs on or one of the clients, but that won't scale nicely.
A test client, it will run commands on a browser or mobile device (mobiles usually needs a PC to control them) and report the results back
Communication channels between the above
In one of my previous companies we've built just that, unfortunately it was an internal tool so I can't disclose the exact details, but you can get some ideas from King's technical blog- our solution used a similar general approach.
Note that you can simply use Selenium Grid, and at the test side make sure to have multiple, isolated, thread safe, copies of your connection object. Here's an article I have found describing it. You should remember though that you'll quickly run into limitations of this solution, for example how do you ensure that you get the requested N clients for the test ? How do you handle delays ? King's solution put's the controlling element close to the tested element while Selenium Grid requires different and longer.