Ugh, I know I have seen this somewhere, but don't remember where. Google around a bit.
If you didn't care about "other", you would just use the pivot table filters (there is a drop down where you can choose top 10, by whatever).
Here, I think you are going to end up writing some custom and fancy dax, that uses RANKX() and when that is in the top 10, just shows the result, and uh... when not in the top 10, it uh... somehow magically sums them all together into an "other"... for which you would have to have on Rows somehow... hrmmm... Sounds like you need a fake/dummy row to pull this off.
Ya, find that article... if you can't... I kinda love this problem a little, so I will totally help. I am just crazy busy today...