I don't know what all the types are but I do know counttype works with these:
man
tank (tanks and apcs)
car (jeeps, trucks)
air
"air" counttype thislist == 0
is usefull to use in a trigger if you only want ground units to activate the trigger (like a west present trigger). This way, your patroling helicopter won't set off the trigger but a man or tank will.
I think "typeof" returns different values. The best way to figure that out is to try it on different kinds of units like this:
hint format ["%1",typeof unitname]
I tried that on a Soviet officer once and it returned "OfficerE", not "man."
Now, as far as your original question, I'll have to think about that one a bit. I think a trigger will have to be involved. You can move a trigger by using the setpos command so you can constantly update its position around the moving object.
Exactly what are you trying to accomplish in your mission?