You can do that with the systemmanager of XP (vista too, i suppose?). First you have to make two independed array, one for each of your controller. Make the RAID-array you wish. Both should have the same RAId-lvl though. Say you make two hardware raid-5 arrays and one RAId-1 array (you could use 4 ports for that on your 16 ports controller, since a uneven type of raidset (16/12) is not recommended. Why a third array? You need a hardware lvl to boot from!
So, you use any type of array you wish for your boot-array; with a max of four disk.
The remaining 12 ports on each you can use to make big array's, which you can combine later on in one big array.
You install/boot from the third array and then you can expand the two remaning arrays in a huge array. For example:
two HW raid 5 (12disks) combining in SW-RAID 0 making a huge RAID 50 HW/SW array. this isn't the best way to go , i think though. 12 disks in one huge array isn't making alot of diffence; i've seen that. The turning-point lies with a max of about 6 disks. So you could use this trick and make 5 HW arrays, one for the OS and the other four to make TWO raid-50 arrays (for example).