Truncate/delete tables for non-owner schema
You can give DROP ANY TABLE system privilege to A, then he will be able to truncate everything in any schema (not just in B's though) . 

If you don't want to do that, a simple stored procedure created by B will do the job (procedure or function in Oracle are by default executed with definer rights) . Then you give need execute permission to A on this procedure. 
For instance,

create procedure truncate_my_table(tab_name varchar2)
as
begin
    execute immediate 'TRUNCATE TABLE ' || tab_name;
end;


You may also want to add parameter validation (for example,  I'd do DBMS_ASSERT.ENQUOTE_NAME(DBMS_ASSERT.QUALIFIED_SQL_NAME(tab_name)) ) , error handling and logging to the procedure.