you can certainly do sorts like that, but I can't picture what you really want to see.
Do you intend to see, for example, MONTHS as columns, and in each month a list of the top-10 SKUs -- perhaps even sorted biggest to smallest -- by month?
If so, you can create a RANK() calc that does the ranks, (and you'll probably have to tell it to restart every month.) And then that can feed another calc that does a LOOKUP() to get the SKU for the respective ranks from 1-10.
If you drag your Category to the rows shelf and then SKU you can put sales to columns. You can then sort the sales by sum of sales to find your top SKU by sales. Note that this will look at the sales for the SKU across ALL of your categories so if you want to find the top SKU for the sales in each Category you can use a rank(sum(sales)). Make sure you convert the calculation to discrete and you can place it between Category and SKU. This is a table calculation that you need to change it to use Pane Down.
You can hide the header of this to avoid showing the rank.
Attached is a sample using the SuperStore Data
Top N.twb 279.4 KB