To restrict access to P2P apps, you really need a better firewall and sharing software than just Internet Connection Sharing. This is very basic and (I think) allows everything internal access to the external Internet.
You really need a firewall app on your host computer which can limit what services can be accessed. Take, for example, Kerio WinRoute. This can be installed on the host computer and used to share the Internet connection. However, it also allows you to configure traffic policies, and what services can access the Internet. For example, you can limit access to only services like HTTP, HTTPS, SMTP, POP3 etc. which would prevent all P2P traffic. Other firewalls would probably work in the same way, but I have and use WinRoute and I know it's very easy to configure.
Of course, you could always limit access to the software itself. If you have XP Pro, you can click Start, Run and type "gpedit.msc" (without the quotes). Expand User Configuration, Administrative Templates, System, and open the setting "Don't run specified Windows applications". Here you can type the name of the P2P application exe file and the computer won't allow it to run. I don't think this gpedit.msc is available in XP home, but I believe there are shareware apps which may achieve a similar result.
With regards your final point, take a look at this webpage:
http://www.winnetmag.com/Article/Ar...9955/39955.html. You can use netstat to find out which programs are running on which ports.