You can login as sys to grant select on v_$session, which is the underlying table of the v$session view. Then, you can login as hr and select from v$session. Please see the demonstration below.
-- reproduction of problem:
SYS@orcl_12.1.0.2.0> connect hr
Connected.
HR@orcl_12.1.0.2.0> select count(*) from v$session
2 /
select count(*) from v$session
*
ERROR at line 1:
ORA-00942: table or view does not exist
-- connect as sys and grant select on v_$session to hr:
HR@orcl_12.1.0.2.0> connect sys as sysdba
Connected.
SYS@orcl_12.1.0.2.0> grant select on v_$session to hr
2 /
Grant succeeded.
-- login as hr and select from v$session view:
SYS@orcl_12.1.0.2.0> connect hr
Connected.
HR@orcl_12.1.0.2.0> select count(*) from v$session
2 /
COUNT(*)
----------
37
1 row selected.