It would not be so hard to bitbang 10 PWM channels, of course it depends on what other tasks is expected of the PIC. Also you would need lots of RAM, 100 bytes to store values for each LED for 256 levels of brightness and one dedicated timer.
Additional hardware would depend on the size of LED's. I am sure driver transistors would be needed for columns, but if LED's are small enough PIC can drive segments directly.
I would run program something like this:
1 Reset timer and start it
2 Turn Led's column one ON
3 Compare value's in RAM to timer
4 Turn Led's with lower value OFF
5 Do other tasks
Repeat steps 2-5 255 times every 10us for a total of about 26ms then do whole thing again for column 2 to 10. This will give you refresh rate of 30Hz, same as TV, aproximately and leave about 50% of Pic capacity for other tasks, depending on type and speed.With fewer levels of brightness it would be easier.
Jirka