Totaal verkeerde logica. $_SESSION is iets per gebruiker. De sessie van een gebruiker wordt niet gedeeld met de sessie van een andere gebruiker. Denk er eens over na - een online bank geschreven in PHP, die allemaal een enkele $_SESSION deelt - iedereen zou ieders accountgegevens kunnen zien.
Ervan uitgaande dat u de standaard op PHP-bestand gebaseerde sessies gebruikt, kunt u de sessiebestanden tellen in elke map waarin ze zijn opgeslagen, bijvoorbeeld
$users = count(glob(session_save_path() . '/*'));
Merk op dat dit alleen sessiebestanden telt - het zal ongetwijfeld oude/dode sessies bevatten die nog niet zijn verzameld. Als je een echte "is nu echt online" wilt, moet je elk sessiebestand ontleden en de inhoud ervan onderzoeken.