Yes. Sodium bicarbonate. Make sure it doesn't have any flour in it.
Buy a tub of sodium bicarb and put it in an old shampoo bottle. Add water and mix - aiming for shampoo like viscosity.
Depends how much hair you have, your activity levels and where you live but start with using it once every couple days. You may end up at once / week, but depends on the above factors.
I just spend more time rubbing my scalp with my fingertips to get rid of dead skin cells or what have you. My non-scientific opinion is that that is what is important to keep your hair clean and shampoo mostly helps to lubricate your fingers and dry out natural oils.
No, shampoos are detergents, which is a chemist's way of saying they dissolve oils and therefore the other molecules and stuff that are trapped in the oils (like foodstuffs on a dirty plate). In the case of hair, that other stuff will include pollution from the atmosphere, salt from sweat, skin cells, bacteria, bacterial metabolic products (some of which cause odor), etc. Shampoos allow that stuff to be chemically freed and washed away.
The equivalent would be not using dishwashing liquid for your plates after a greasy meal. Hot water and friction can do a lot, but it is an uphill battle. In the case of hair, your method might just be "good enough", though. But I'm sure your hair won't get the "Gee, Your Hair Smells Terrific" response.