browser tabs share the same session id because the id comes from the browser. HTML5 SessionStorage, window.sessionStorage, addresses this limitation. That might not be viable depending on the backwards compatibility you need.
This goes into much more depth. How to differ sessions in browser-tabs?