Você precisa do privilégio CREATED ANY SYNONYM para fazer isso como A, portanto
GRANT CREATE ANY SYNONYM TO A;
EDIT:Para evitar o privilégio ANY, faça o seguinte:
a) como A:
GRANT SELECT ON mytable1 TO B;
GRANT SELECT, INSERT, UPDATE, DELETE ON mytable2 TO B;
b) como B:
CREATE SYNONYM a_mytable1 FOR A.mytable1;
CREATE SYNONYM a_mytable2 FOR A.mytable2;