A nested collection can only use a predefined SQL type, so the %rowtype is not valid in this context. Also, the SQL type would be a collection and would not use the INDEX BY clause (only used with PL/SQL associative arrays).
You could create a type that reflects the columns of the table:
create or replace type emprow as object (empno number, ename varchar2(30));
Note: You cannot use %type in these definitions.
And then create a collection based on this type:
create or replace type ttabletype1 is table of emprow;