Mutiplexing or Shift Registers?

21 will require three shift registers, they are easy to use, if you want to drive higher current LEDs then use the HEF4794 or a transistor on the output of the 595

This is what I did, I've not done more since.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1205021534

You will probably want a stable time source since the Arduino does not have one.

http://www.arduino.cc/playground/Main/InterfacingWithHardware#Input