If he's wearing a shirt, that's probably the culprit.
Did this problem just start happening when he reached puberty age? And does it happen while he's actually swimming, or when he gets out of the water?
Years ago when I worked on a summer camp one or our male campers had the same issue. From what I recall, the nurse told me that it happened to him because when we swim our skin absorbs water and expands/wrinkles. When we get out of the water it retracts. His nipples were becoming erect when he got out of the water (while his skin was retracting), and the resulting pressure caused his nipples to bleed. I'm not a doctor or scientist, but it made sense at the time. He just covered himself with a towel or put a shirt on as soon as he got out of the pool so that it wasn't as noticeable.
I think your next step is probably a dermatologist.