This has worked for me before, it's worth a shot. The stain might be too set in by now, but I've gotten wine stains out of shirts and sweaters for friends before, after parties that got a bit wild.
Step 1: Soak shirt in a solution made from one gallon hot water and one cup of vinegar. Let the shirt soak for 30 mins to 2 hours.
Step 2: Rinse shirts, and squeeze out excess water. Empty bucket and rinse. In a cup, prepare a concentrated Oxy-Clean solution. Make sure to use the Oxy-Clean granules that come in the tub. Make the solution about 10 parts HOT water to one part O-C. Usually this amounts to two scoops of O-C (using the provided scoop) per 4-6 ounces of water. You want this to be very concentrated.
Step 3: Apply the strong solution generously to the stained areas. Place the shirts in a bucket (so that the solution doesn't flow away, or dry) with the stained areas towards the bottom of the bucket so they stay nice and covered in the solution. Allow to soak overnight. It can also help to use an old toothbrush and scrub the stained areas every hour or so, if you've got the time.
Step 4: In the morning, remove the shirts from bucket. Fill the bucket with a gallon of hot water, and two scoops of the Oxy-Clean (basically, follow the recipe on the package for a general cleaning solution) and mix well. Place the shirts in the bucket, and soak for 2-24 hours. This just helps to remove any trace of stain. You might want to stir the shirts around with your hands after you put them in the bucket with the weaker solution just to remove some of the stronger solution that is still on the shirts.
Step 5: Remove, and wash/rinse in the regular cycle on your washing machine.
Note: I find that this normally removes sweat/dirt stains from the armpit, neck, and cuff with ease. For really strong stains, you might have to repeat the process. However, with this, I've been able to remove some major sweat stains that have been set into shirts for years.