There are two parts to a session.
- The data stored on the server
- The cookie with the session id on the client
There is no reliable way to delete the data on the server when the browser is closed. Every sane session system just cleans up old data periodically (if there has been no sign of the associated browser for N minutes).
The cookie on the browser is usually sent without an expiry time, which means it will expire when the browser exits. This works reliably.
If whatever you have is doing what you want on Windows clients, then I would assume that you are talking about expiring the cookie.
This will happen on Mac as well as Windows. My best guess is that there is a problem with your testing. On Windows, applications generally exit when the last window is closed. On Mac, applications generally require that you explicitly quit them but remain open if you just close the last window.
To make sure the cookie expires you must expressly exit the browser (by picking Quit from the menu or right clicking and picking exit on the icon in the Dock).
There is no way for the server to detect when the last window has been closed and kill the session remotely.