The argument that the boycott would only hurt small business owners, does not hold water in my opinion.
The people at the lower levels of the system are dependent on whatever amount of money the customers give them at their particular fuel station or whatever. If there is a boycott, then these people will not be having customers giving them that money. They will therefore be financially hurt.
The people at the top levels of the company don’t have their income based on how much they sell, or dependent on sales in one or two locations. Their income is probably fixed, and is supplied by all of the oil sold everywhere in the world. Any boycott won’t have much effect on them at all.
The company itself might lose sales in the region where the boycott is going on, but oil is an essential item. They can always just sell more elsewhere in the world. They might take a minor overall loss for a short while, but that’s it.
To really hurt the company itself or its higher-ups, you’d need to have a major boycott all over the world with nobody buying any oil at all. And that’s not likely to happen, because then everybody would be hurt when food prices rise and electricity prices rise and so on.
The best way for the public to do something about what BP does, then, is to build up public support for some sort of legal actions.