I saw the XFree86 guys running multi-headed at the Linux Pavilion at Comdex in Fall 1999 on a box with three Matrox PCI cards; it works. Multi-head configuration is discussed in the XFree86 4.0.2 release notes (RELNOTES). You identify the device with BusID. ServerLayout will describe how many heads, etc. This is all configured in the XF86Config-4 file on my system; I believe the example XF86Config-4 file that is installed has an example of a multi-headed system.
The Matrox Millenium G400 and G450 cards should be fine (there are two heads on one AGP 4x card). The G450 is my recommendation because the secondary head has a faster RAMDAC than the G400 (the primary heads both use 360MHz RAMDACs).
Sadly, I don't have an actual configuration file for a multi-headed system since I haven't ponied up the $550 for another Sony G400 monitor.