One idea would be to look for a microcontroller that has at least 20 I/O pins that you can set as output. No specific model comes to my mind, but I am pretty sure that some "bigger" microcontrollers with cases that have many pins have quite many I/O pins.
Other option is to use some external I/O IC or several ICs to implement the number of outputs you need. One IC that can used to implement 24 output pins is 8255 Programmable Peripheral Interface (PPI). It was traditionally the IC that the industrial PC IO cards were based years ago (when ISA bus was popular). One tutorial on this IC can be found at
http://www.boondog.com/%5Ctutorials%5C8255%5C8255.htm
There are also many other ICs that can implement I/O capabilitities with different kind of interfaces to microcontroller. When you don't need very high speeds (timings needs in milliseconds or slower) then the various ICs that connect to different serial buses sound promising. There are I/O ICs that connect to I2C bus, it is pretty easy to connect things to SPI bus, etc...
And there is always the traditional approach to use shift registers clocked with few signals... this is a popular way to contruct industrial electronics where you need many I/O pins. Just clock in the right data states to outptu controlling ICs and then latch the wanted state to output. For example 4094 IC souts for this, but there are many possibilities. With this kind of system, you can have almost any number of output pins by just adding more control ICs and updatign your software to handle more ICs.. For example with 4094 you get 8 outouts per IC.
Here is one example that uses this method to have many outputs (and also several inputs with other ICs):
DCIPLC(free) a virtual PLC.
http://home.scarlet.be/~dc11cd/dciplc.html
http://home.scarlet.be/~dc11cd/plc_sch.html