Shared hosting is where a company runs a server. They sell a small portion of their disk space and bandwidth to users for a monthly fee and several websites run on the one server.
Reseller hosting is much like shared hosting, except that company that owns the servers sells their disk space and bandwidth to others, frequently smaller web hosting companies, who in turn resell that disk space and bandwidth to their customers.
Dedicated servers are where you rent a server from a company. They house it on their network and give you full control of the server to manage yourself. When the contract is up, they keep the server.
Colocation is like a dedicated server except you own the server. You build a server yourself and then pay a datacenter to let you keep it on their network. When the contract is up, you go pick up your server.