If horses grew on trees, Red Dead Redemption 2's Arthur Morgan would have a much easier time amassing a stable of every steed in the game. But as it stands, you need to cough up the in-game cash to expand your horse collection - unless you take advantage of a secret, quite possibly bugged location. Imgur user Marcass2021 has put together some nicely illustrated instructions on how to get any horse - even rare breeds - for free, provided you're willing to spend some time in place of money.
This trick only works from Chapter 2 onward, but can result in horses seen throughout the entire campaign. You'll want to seek out a spot north of Saint Denis, the city at the southeast corner of the map. Between two unassuming houses, you'll find a stable where two randomly selected horses will spawn. "Unlike all of the other random horse spawns, these 2 pull from a pool of all of the horses," writes Marcass2021. "Rare wild horses, stable purchased, and random encounter." If you don't like the two types of horse that spawned in, you can simply re-roll them by running away, letting them despawn, and returning a few seconds later to see what the Horse Lotto (name not final) has served up this time.
Once you get the horse you want, saddle up and take your ill-gotten steed to the nearest stable for keeps. Be aware that onlookers will consider this stealing, in case that weighs on your conscience. Speaking of, this could be considered an exploit, given that you can unlock horses which are supposed to be gated off until the late-game, so bear that in mind if you're concerned about being a purist. Rockstar could very well patch this (very likely unintentional) spot sometime soon, so if you're looking to assemble a hoard of horses in record time, you should probably jump on this ASAP.
For more steed strategies, here's the primary method for getting Red Dead Redemption 2's best horse.