If you are on a budget you can use discrete NPN transistors or ICs with open collector (or open drain outputs) that can be scraped from old transistor radios, television sets, old printers, and other outdated electronic devices.
Discrete NPN transistors
The maximum emitter current, Ie, must be observed
Small signal transistors, like BC 547B or 2N2222 can be used, but they can only drive one of the RGB LEDs as the emitter current, Ie, will be 60 mA in your circuit and their limit is typically 100 mA. I have shown a transistor driving two in the diagram below.
Power/driver transistors, like BD 135 (1.0 A), with their much higher maximum emitter current can drive many more RGB LEDs, 16 (1.0 A/0.06 A) for BD 135.
I far as I can tell the RGB LEDs you are using are common cathode (where the "arrow" is pointing), hence the diagram above. The operating current is 20 mA and the forward voltage drops at this current are 2.0 V, 3.2 V and 3.2 V for red, green and blue, respectively.
Other values: R4 is in the kiloohm range, e.g. 3.3 kohm. One resistor is used for each internal LED as this makes for more uniform light and also accounts for the difference in forward voltage drop for red and blue/green. Vcca
is the supply voltage to the CPU and can be different from the 5 V for LEDs.
Computing the current limiting resistors
For green and blue (R2 and R3): as the current is 20 mA through the diode the same current flows through the resistor. If the voltage drop over the driver (transistor) is assumed to be 0 V then the voltage drop over the resistor is 5 V - 3.2 V = 1.8 V. We now know the current and voltage for the resistor and can use Ohm's low to find the value of the resistor:
$$ U = R3 \cdot I \implies R3 = \frac{U}{I} = \frac{1.8\ V}{0.02\ A} = 90\ \Omega $$
For red (R1):
$$ R1 = \frac{U}{I} = \frac{5.0\ V - 2.0\ V}{0.02\ A} = \frac{3.0\ V}{0.02\ A} = 150\ \Omega $$
Standard values of resistors (E24, 5%) close to these two values happens to exist (91 ohm and 150 ohm).
ICs with open collector (or open drain outputs)
The principle is the same as for the discrete transistor.
An example is the TTL 7405 (variations: 74LS05, 74HC05). The maximum current can be found in the datasheet, but most likely it can only drive one RGB LED per output. On the other hand it is more compact as there are six inverters in one IC. Some others in the TTL family (some with fewer outputs) are 7401, 74LS03, 7405, 7406, 7409, 74LS12, 74LS15, 7416, 7417, 74LS22, 74LS33, 74LS38, 74LS136, and 74LS266.
I think bus buffer/line drivers, like the 74LS244 (eight outputs) can also be used, but I have to look into it further.
References
- A good background article is "Driving LEDs with Open Drain Port Expander Outputs".
Best Answer
You can multiplex it to save drivers, up to about 8:1, but need a fair amount of speed to update sufficiently fast as you need to reload the drivers for each row, and row update needs to be fast enough to avoid flicker - something like 4ms for 12 bit PWM at 8:1 wih 1MHz PWM clock - you're probably going to need something with more grunt than an 8 bit MCU.