Sounds as if you co-worker may be threatened by you. I deal with this a lot
with my staff.
First thing first, do you have a manager you can talk to about this? If you
do, don't hesitate to mention this, or even suggest to customers this has
happened in front of to speak with the manager - a customers word is pretty
good in these cases.
Second, if you don't have a manager, get brave, pull your co-worker aside (out
of earshot of any other employee or customers) and have a few words with him.
To make this easier, you may want to write what you want to say down and
practice it for a couple of days before you actualy do it so you don't become
flustered or get sidetracked. Be honest with this fellow - use "I" statements
(cheezy, but they work) such as - "I feel attacked when you do this", or "I
don't understand why you treat me so badly in front of customers". Let him
know that this type of behavior will no longer be tolerated and is terribly
unprofessional.
I guess with out further detail, these are my only suggestions. Confrontation
is hard for some people, but trust me, you will feel a lot better after you
let him know how you feel.
On the other hand, he may be a power hungry mental midget and not get it at
all even after you have confronted him.
Good luck.