I don’t want him to be a trainer and I don’t want him to move, he’s like talking under a tree and than he notices the player
Using "Trainer(#)" does not actually make them a trainer.
Its just a name the scripts use to identify when they want to use the notice player actions (oh, you also have to set the trigger to event touch)
It 100% in no way requires the event to be a trainer. It just means the event will be called that in name only.
EDIT: To clarify, a battle will only happen if you specifically put the code/comments to make a battle happen. For example, this event would result in exactly what you asked for with no battle happening.