If you take the finite state machine approach which you may be familiar with if not in name but method then you can "multitask" and be able to add or remove tasks with the least amount of fuss and mess.
That last part is not automatic but is not hard to achieve. The idea is to keep tasks separate; not have code for a light inside of code for a button for example (which leads to more and more spaghetti interleaving and indent levels as featurism progresses) but instead pass control through variables and bits-as-flags.
Start here for a good tutorial on:
How to do multiple things at once ... like cook bacon and eggs
That shows how to set up timed events that can be up to 49.71 days apart, if desired.
For Inputs, you just use a different if() or set of if's.
For memory there is a way to store constant text and/or tables to flash memory and use it through minimal or essentially no RAM. There's a macro for simpler text printing from flash, tables take a bit more.
Arduino is a development board. You can use it to program stand-alone AVR chips on boards, even breadboards. Thus if you need more than one chip to do everything it can be pretty cheap to add "cores". The 328P on an UNO has less resources than a 2560 on a MEGA but it's just as fast and has pins enough to do a good bit. You can program a wide range of AVR's from 8 to 16 pin ATtiny chips (under $2 ea) up to 1286's (about $7) that have twice the RAM of the MEGA's 2560. And if needed, a number of the bigger AVR's can connect to external RAM as direct-addressable up to 64k. Rugged Circuits makes shields to do that, their QuadRAM shield does bank switching to give 512k capability to a MEGA so I wouldn't get too worried about RAM if I were you. 
http://ruggedcircuits.com/html/quadram.html
You can use shift register chips (with external power) as pin-multipliers. Using the SPI-bus ones you can control literally 100's of pins with 4 MCU pins.
You can use SD card adapters for gigabytes of cheap mass storage. Just don't use them quite the same way as a hard drive or floppy, sorting is better done through link files than rearranging records or text since you have limited rewrite capability (10's of 1000's of rewrites which a processor can do in less time than is economic). If you need to do physical sorts, do those on a PC and load the finished file to SD card.
There are Finite State Machine tutorials out there, IIRC Majenko (a member here) has a good one aimed at Arduino. I have a simple example or two as well.
Tell your son to take time to do it right or learn to code himself! There's an old saying: Never Time To Do It Right, Always Time To Do It Over.
A mind fixated on deadlines will often miss the otherwise obvious simple and easy answers. If you need a break then take one, good code usually isn't a linear task.