Hola, no no es posible. Eso implicaria que el servidor haga un pull al navegador y la web no funciona asi, es el navegador el que hace el request al server, por lo que no queda otra que usar el intervalo.
Si no quieres usar tantos request para sobrecargar el server, hecha un vistaso a los
websockets de html5 podria ser una alternativa a considerar ya que te abre un poco el abanico de posibilidades