Hast du schon mal an Schieberegister gedacht? zB den 74*595 zu kaskadieren, eine Kaskade für die R-Komponente, eine für G und eine für B.
Der 74*595 geht glaub bis 100MHz. Und ein Update geht, indem du die Werte im Shiftregister ins Latch schreibst, also gleichzeitig für ALLE LEDs

Allerdings bekommst du so keine Mischfarben...

Die bekommst du via selbst gemachter PWM, aber mehr als 4 Helligkeitsabstufungen pro Farbe halte ich aus Zeitgründen nicht für sinnvoll.
Die einzelnen LEDs gegenainander zu multiplexen geht auch, ist dann ne Zeitfrage und damit ne Rechenaufgabe, was da machbar ist. Um ein Flackern zu verhindern musst du da mächtig fix sein.

Zudem gibt's auch Displaytreiber die in die Richtung gehen, etwa den MAX6953
General Description
The MAX6953 is a compact cathode-row display driver that interfaces microprocessors to 5 ? 7 dot-matrix LED
displays through an I2C-compatible serial interface. The MAX6953 drives up to four digits (140 LEDs).
Included on-chip are an ASCII 104-character font, multiplex scan circuitry, column and row drivers, and static
RAM that stores each digit, as well as font data for 24 user-definable characters. The segment current for the
LEDs is set by an internal digit-by-digit digital brightness control.
The device includes a low-power shutdown mode, segment blinking (synchronized across multiple drivers, if
desired), and a test mode that forces all LEDs on. The LED drivers are slew-rate limited to reduce EMI.
For an SPI-compatible version, refer to the MAX6952 data sheet.
Features
 400kbps 2-Wire Interface Compatible with I2C
 2.7V to 5.5V Operation
 Drives 4 Monocolor or 2 Bicolor Cathode-Row
5 x 7 Matrix Displays
 Built-In ASCII 104-Character Font
 24 User-Definable Characters Available
 Automatic Blinking Control for Each Segment
 70µA Low-Power Shutdown (Data Retained)
 16-Step Digital Brightness Control
 Display Blanked on Power-Up
 Slew-Rate-Limited Segment Drivers for Lower EMI
 36-Pin SSOP and 40-Pin DIP Packages
Vielleicht gibt's da noch was das besser passt...?