There's three things you can do:
1. Look at the individual programs that are running in the Notification Area (System Tray) and configure the unnecessary ones to not launch on startup.
2. Go to Start/Run and type 'msconfig' in the box. When the Configuration Utility starts, go to the Startup tab and remove the ticks from uny unnecessary items.
(When you next start the PC, a box will pop up to remind you that you are using selective startup. Tick the box to 'don't tell me this anymore' before you close it.
3. This has solved problems with startup taking too long for many people (including me). XP tries to launch everything that is in startup at once, leading to conflicts as the programs fight for CPU/memory space. Startup Delayer allows you to put delays on when programs start, say 1 or 2 seconds between each one. The overall effect is that, although you may have spaced startups over 30 seconds, it's quicker because there are no conflicts.
Get Startup Delayer here:
http://www.r2.com.au/software.php?page=2&show=startdelay