There are several approaches to this.
- Tell him he should be responsible for getting his own lunch. Though that might not work. You have to start with this. You know this is not a part of your job responsibilities.
Assuming that he ignores your announcement that you are no longer going to get his lunch, you might have to be passive-aggressive:
- Switch to packing your own lunch. Tell him you need to save money.
- Change where you go. Pick a place that makes it impossible to go past the place he likes. Though if the issue is that he likes bossing people around, then he might adjust to the new direction. Or even might like the new place you go.
- Change the time you go to lunch, leave early enough so that you get there just as the restaurant opens. Or go late enough so that he is starving.
- Start delivering his food cold. Get his food first, let it cool down before you return to the office, then run an errand in the building and deliver it to him about an hour after you get back.
- Mess up his order. or forget his order.
- Volunteer for a project or meeting that impacts your lunch delivery service.
At this point if he doesn't stop, then he is a bully and you should complain to HR. Of course the issue will be that he will now be searching for a new victim. So you might have to go the HR anyway.
While I have not seen this exact situation, I have witnessed a case where one person was oblivious to the fact that they were trampling over another person. They didn't even consider that somebody had done this to be be nice. When told to stop they thought the victim was joking. Only when the the victim pulled the plug did they wake up to the fact that it wasn't a joke.