Well, for question 2, you could use dhcpd from
http://www.isc.org. You can limit what interfaces it listens on by adding them to the startup commandline, ie "dhcpd eth2".
As for question 3, in their dhcpd v2.0pl5 (admittedly very old, but still does what I need) you would add a line like:
host mymachine {
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address YYY.YYY.YYY.YYY;
}
Where mymachine is pretty much just a name field for your sake, but the X's need to change to the MAC address you want fixed, and the Y's need to be the IP address you want to fix it to.
Question 4 seems to want to use the allow and deny keywords mentioned in the man page for dhcpd.conf. I've not used it myself, so can't do much more than point you at it.
-Bill