I'd like to know if it's better performance-wise, to de-normalize all categories into one table or leave it as it is.
You're optimizing a data warehouse for read performance, so I'd opt for denormalizing the category tables. You're talking roughly 8,000 rows or a page and a half in most relational databases. You could keep this table in memory.
Seems like a star schema would work for you. If the other dimensions have relations, then a snowflake schema would be warranted.