The downside to what's shown in the video is that the bots in Team Fortress 2 do not move, so your training is nowhere near the level you'd expect to face while playing a real game. My idea to get around this is to have the bots spawn on top of moving trains. The trains will carry the bots around the map, and make it essentially a carnival duck shoot.

Your sniper will be positioned in a building with windows and stairs, allowing you to snipe from several different angles. As the trains get further away from you, they will be more and more elevated, providing several different target points for you to shoot at. Several different trains will move in several different directions.

There will be no conditions for victory. The only goal will be to get as many headshots as possible and hone your sniper abilities. I'll also put various items in the building for those who want to practice sniping from cover.

I say don't use bots at all. You can use breakable targets with a piece specifically for the head, for instance. It will end up being more difficult map logic wise, but you'll have a lot more possibilities using map entities rather than the very unreliable bots.

A little extra research should dig up plenty of ways to pull off sniper targets, and that way you could also mirror the map and keep score per team, among other things.

if you could do it in the style of those fairground shooting games it would make it an awesome training map , the ones with the moving ducks, obviously if you could fit it to a tf2 style it would be even better,

i've got visions of Buddikaman's models in a side scrolling sniper fest

you could make
moving targets with func_movelinear
spinning targets with phys_hinge & phys_motor
swinging targets with phys_ballsocket
flying targets with phys_thruster
clay pigeons with func_conveyor or trigger_push