Ummm... creo yo que la forma mas simple de hacer eso es hace un UPDATE cada vez que un usuario se logea, y otro UPDATE cuando se deslogea...
Digamos....
En donde tenes todos los datos de los usuarios, creas una tabla nueva llamada 'estado' cada vez que un usuario se logea, haces un update a la tabla esa poniendole el valor "Online" y cuando se deslogea, haces otro update cambiando "Online" por "Offline"...
Bien, despues para hacer la lista seria simple... haces una query que seleccione solo a los usuarios que en la tabla 'estado' este en "Online"
o algo asi... es simple... si pudiste hacer el sistema de registro y de logeo, no creo que tengas problemas para hacer esto :P