There is no such thing as a "market price". To prove this to yourself, write a simple model of the stock market with buyers and sellers. Every order is a limit order.
What is the "market price"? Is it the last trade? Is it a weighted average of the last 10 trades? It doesn't actually exist.
At any price there will be a certain amount of liquidity. If you want to guarantee that you can buy a lot, then you have to pay extra b/c the counter party doesn't want to sell low so he hedges by adding a bit of spread.
The same applies to selling. If you want to sell a lot you have to discount a bit b/c the buyer will want a bit of insurance that he/she isn't overpaying.
The HFT algos do add liquidity b/c if the liquidity were there at the first price probed, then the algo would never really matter, the desired shares would have changed hands with some other counter party.