Well, as noted in an earlier ask, you’ll want to be cautious of introducing anything that can breed with gyarados into a gyarados pond. This means any female fish-like pokémon may be a bad idea, as presenting a gyarados with one as a companion may trigger his more primal instincts. Male specimens, however, are fine, and there are quite a few stories of lifelong friendships between milotic and gyarados. (It’s likely because both of their preevolved stages can commiserate over being formerly the weakest fish in a pond, so to speak.)
The other sorts of pokémon that would be bad ideas to keep in your gyarados’s pond would, of course, be chinchou and lanturn, as they sometimes discharge electricity into their habitats. As you likely know, gyarados in their natural states possess a potent weakness to electricity, so being that close to either chinchou or lanturn may be dangerous to your gyarados’s health. Try to keep him away from anything that knows electrical attacks as well. Starmie that you obtain from a trainer or breeder, for example, may know Thunderbolt, and specially bred remoraid and octillery may know Thunder Wave.
All other pokémon that live in the water are excellent choices, but gyarados prefers anything it can swim with. Part of this is because gyarados tend to be highly competitive, but some part of it is left over from its time as a magikarp. (Magikarp congregate in schools and shoals to protect themselves, after all.) If you can get a pokémon that’s native to the same place your gyarados is from, even better. If you received your gyarados from a breeder, obtaining a local pokémon from the same sort of environment magikarp generally live (such as marill, wooper, psyduck, tentacool, and so forth) will do as well. This is largely because, as these pokémon are native to gyarados habitats, they’re more likely to be used to a gyarados, or they’ll at least adapt well to your gyarados’s presence.
In short, most water-types are perfectly safe to raise with your gyarados, especially given the fact that you’ve said he is well-trained and understands the difference between food and everything else. But the closer you can get to pokémon that would normally live with it, the better. If not, simply stay away from anything it would want to mate with or that its entire species is weak to.