Hmm... I'd suggest you to make simple trigger system with 1x1/point locations centered on each marine and triggers moving back marine if he leaves his location. While using hyper triggers the effect will be nearly unnoticable (you virtually don't see marine moving) and marine will not be constantly but occasionally moved so he will be mostly correctly hit
. If it will be more then several marines and you don't want to use so many locations or triggers use more inteligent system: make burried units (in this example Zerglings) under each of Marine and use triggers:
1.Conditions:
-swith "control" is cleared
-player X controls exacly 0 Zerglings
Actions:
-set "control"
-preserve trigger
2.Conditions:
-switch "control" is cleared
player X controls at least 1 Zergling
Actions
-center location "checking" at Zergling
-center location "checking_out" at Zergling
-remove all Zergling at "checking"
-create 1 burrowed Drone at checking
-preserve trigger
3.Conditions:
-swith "control" is set
-player X controls exacly 0 drones
Actions:
-set "control"
-preserve trigger
4. Conditions:
-switch "control" is set
player X controls at least 1 drone
Actions:
-center location "checking" at Drone
-center location "checking_out" at Drone
-remove Drone at "checking"
-create 1 burrowed Zergling at checking
-preserve trigger
5.Conditions:
-Player Y brings exacly 0 marine to "checking"
Actions:
-move marine owned at checking_out to "checking"
-preserve trigger
where "cheking" is point location and "checking_out" is 1x1/3x3 location.
This trigger system consisted of 5 triggers and one switch will prevent virtually unlimited amount of marines from moving from their positions.
ADDITION:
PS. You don't really need seven hyper triggers unless you want ppl's to play your map for a month
.