Hey buddy,have you ever seen how a dot matrix LED panle works?If you ever have,you make use that structure to drive your LEDs.One single MCU can drive up to 512*128 pixles or more,and that's more than 65536 LEDs,which is far more than your requirement.The key that such circuitry would work is the latches.A series of latches connected in serial can extend your I/O resources more than 10 times of the original.Try 74LS595.It's an 8 bit serial-in,parallel-out shift register with output latches.Use an I/O pin of your PIC to switch in serial data synchronized by a serial clock generated by another I/O pin.Each bit will be sent to the cathode of an individual LED while all anodes are conncted to Vcc via resistors.When all bits are shifted out,use a third I/O pin to generate a register clock,and the data bits will be latched onto respective I/O pins.This output won't be modified before next register clock even when you are shifting another stream of serial data into the series of 595s.
I think this might help as I have built lots of dot matrix LED panels,and right now there is one above my computer that displays current time as a clock.