Is there an IC with 20 outputs?
You could use a microcontroller with 3 × 8 bit ports. This will require you to do some programming. Nothing especially difficult - unless you've never done that before.
Usually one would use multiplexing with a microcontroller, too, to minimize the number of wires needed. Read more below.
What does "multiplexing" mean?
In the circuit you posted IC 1 counts from 1 to 10 (signals A to J). These signals are connected to 3 banks of LEDs (left middle right). But not all LEDs are on at the same time. This is where IC 3 and the 3 NPN transistors (2N3904) and multiplexing come into play. IC3 counts from 1 to 3 (pins 3, 2 and 4), the restarts from 1. When an output of IC3 is active (high), the transistor connected to this output will be on and only an LED in this bank (or group) can be lit. As IC3 is incremented each time the counter in IC2 overflows (goes from 10 to 1), IC3 will switch to the next bank at this moment.
An example:
IC2 is at 10 (signal J is high), IC3 is at 1 (pin 3 is high). Then the bottom LED in the leftmost bank will be lit since it is connected to both signal J and the leftmost NPB transistor which is on due to IC3 pin 3 being high. The other LEDs connected to signal J will be off because the middle and rightmost transistor are off.
With the next clock IC2 switches from 10 to 1, activating signal A (signal J is off). This transistion will in turn switch IC3 from 1 to 2, pin 2 becoming active, pin 3 becoming inactive. Now the top LED in the middle bank will be lit, but not the LEDs in the left or right bank, because only the middle NPN transistor connected to IC3 pin 2 will be on.
The big advantage of multiplexing is that you require much less wiring. As you can see you need 13 wires to drive 30 LEDs. If there were no multiplexing, you'd need 31 wires for 30 LEDs (30 for the anodes plus 1 for the common cathode).
Read more about multiplexing LEDs e.g. here.