Creo que si bien es posible hacer lo que está describiendo, no es demasiado práctico, ya que supone una gran cantidad de tiempo complicado:una sesión abre la conexión A y ejecuta el proceso para crear la tabla ##temp, y esa sesión mantiene la conexión abierta mientras las conexiones B, C, etc. necesiten poder acceder a la tabla temporal.
Estaría mejor con una solución que usa una tabla "permanente", donde se agrega una fila con un identificador único (int o GUID) para cada "sesión", ese valor se devuelve mediante la llamada de inicialización (o de lo contrario se puede recuperar o identificado) y utilizado por todas las llamadas posteriores para la sesión.