1. Loads, you'd need to lookup the Microsoft web site for more details. I think XP is the first home-oriented merge of the old Windows 3.x line with the "professional" Windows NT line, whereas Win2000 is just the next in line after WinNT 3.51 and WinNT 4.0.
2. The underlying WinAPI is the same but the WinXP implementation will have extensions to support the additional features in XP. Software written for Win2000 will almost certainly run OK on WinXP, except where there is any Win2000 specific stuff. Software written for XP will only run on Win2000 where there is no WinXP specific stuff.