I'm not sure exactly what you want, but you can acomplish this without Spirit.
There are many different ways to accomplish what I think you want...
First of all, are you using a func_train or func_tracktrain?
You can make certain stoppers out of regular brushes along the track. Make sure the player has to jump to get over them. Because of this, the train will pin the player against these and the options embedded into the train will stop it and cause a hurt to the player. You can change the exact total ammount of hurt you want, and using more advanced options you can actually specify how often you want the hurt to progress.
You probably don't want this effect, but it is a resonable way to accomplish this.
Second, you could place a large trigger_hurt along the path of the train, and place certain trigger points that correspond to the precise path_corner that the train is at. This way you can use a multisource so that if the player is at a specific trigger, and the train is at a specific position, the trigger_hurt will be in effect.
I'm not sure if that is what you want, as it would take a lot if work to accomplish this, though it is very possible.
Or, if the train is in a perfect circular path, just use a func_rotating.