As SYS, grant select on v_$session directly to one privileged user with grant option. (Someone who is a DBA anyway is a good choice)
As that privileged user create a view using the same query you have above. (USER_SESSION is a logical name)
create a public synonym for your USER_SESSION view.
grant select on USER_SESSION to specific users, or to PUBLIC.
In this way, v$session is not available to the average user, but USER_SESSION is, and works as you would like.
Brian it works,
I simply missed with grant option on the beginning so stuck on ora-01720 when making synonym for users (let's call this mental block :-))
view : V$SESSION ( Lists session information for each current session, includes user name)