not on any O/S. The .net Mutex instance is tried to the process, its basically a static variable.
if a name string is passed, a system mutex is used and works.
On windows you would use the NT named mutex. On MacOS you would use the named pthread mutexes. if you pass a string, .net uses O/S mutex.
On MacOs the Desktop already defaults to one instance, but you can start a second via terminal. But rather than a named mutex it is better to use NSWorkspace which has a list of running applications.