If your players are easily frustrated by a few bad dice rolls, that's a problem with your game in general. Bad dice rolls happen. And they will happen a lot. If the laws of the universe don't change in the near future, I would even dare to say they will happen with the same frequency that applies to good dice rolls.
After all, your players don't get frustrated rolling too good, do they? Did they ever leave the table because the rolled 3 criticals in a row totally dominating the encounter? So the real problem probably is, that their only action and therefore their only fun producing aspect of the game is winning the dice roll. That is fine for a board game, but not exactly the goal of roleplaying games.
You can do a lot more in a turn of combat than stand there and hit the enemy. You can move to flank the enemy. You can taunt him (just in character, without any rules involved). You can be creative. You can have a lot of fun with failures. My most memorable moment in roleplaying was when my ninja character failed so miserably sneaking out of a bar that she ended up on the doorsteps with a broken ankle and screaming. Sure, that was a failure, the worst possible combination of dice I ever saw, but it was still fun and a happy memory meeting the people of this group even ten years later. But you need to encourage it and you need to allow it, even if (especially if!) it's not in the rules.
Example: Playing a specialized magic user, our party once met a monster that was completely immune to any of my magic. I could have taken the second (or third) row in combat shooting ordinary arrows at it. I would probably have missed 20 times in a row. It would have been incredibly boring. After 10 misses I would probably have left the table, too. Life is too short to be bored. Instead my character switched into light armour (no proficiency, but who cares), got a dark cape and a dagger and sneaked behind the monster. He failed the sneak roll, he was unable to cast magic due to the armor and he really sucked at hitting it with the dagger. BUT: the GM decided it would turn to me and leave it's back turned to the warrior leaving it open to his attacks, because even the dumbest monster knows that those sneaky dark dagger people hurt the most. I failed every single roll that combat and still contributed and had fun.
Remember, as a GM you need to encourage and allow it. No rule ever said that monsters need to turn to the sneaky git with a dagger. That was good GMing. We had fun. Much more fun than any fireball-damage-dice-rolling-spell could have brought. Build your encounters so that the players feel they can be creative. And allow them to be creative. If the players are creative, then no dice roll is needed to "allow" them to contribute. Contribution is measured in fun, not damage points.
--- Edit: ---
The first part was about what can be changed in the gaming group and playstyle to make failed rolls less frustrating. A commenter remarked that sometimes it has nothing to do with the game or group and that's absolutely right:
Some players simpy cannot lose. They can't. If they lose, they get frustrated. But losing is part of any game. I guess we all know people who are like that. It's also never them. It's the noob team. Or the dice. Or whatever. If the game was lost, somebody must have been a bad player. That you can play a game, be good at it, have fun and still lose doesn't fit in their world view. For them, it's about winning, not about having fun playing. If this is the case with your player, there is little that you can do to change that. For him to be the winner every time, the rest would have to lose. And you can't have that in a group. That's not fair to the others.
Some players are just bad at statistics. They don't have bad luck. They only feel like they had bad luck because they don't know better. Some people need a 18 to hit on a d20 and think missing 3 times in a row is incredibly bad luck. It's not. To the contrary, it would have been pretty lucky to hit just once in three tries. Make sure the players know at least basic statistics and can convert your systems dice rolling to percentages, so they have a number they can grasp.
Some people are building their characters with damage dealing as a priority. They can dish out huge amounts. Many dice. Large numbers. But most systems are quite balanced, so to achieve this, they sacrificed something. Most likely their chance to hit. So they sit there round after round waiting for their one moment of glory where they land a lucky hit to show off their uber damage. That's a decision. They could as well have build a character that attacks three times a round for little damage and in a good system it would have the same end result. As long as they look only at one number (damage) and not at the full picture (damage * chance to hit), they will frustrate themselves every time. Make sure they know that this is their own decision, because they can only change this situation themselves.
What you have is a clash of expectations. Your group likes to plan and strategize, she clearly doesn't (or rather, planning and strategizing is less important to her than playing this impulsive character). It's really important to articulate the expectations of play and you should do talk to her, and the group, directly, rather than create an NPC to try to block her character.
You'll notice if you look at other media or stories, there's a big difference between impulsive characters who TALK about jumping in, but don't actually do so, vs. those who DO and cause a lot of chaos.
If your group expectations are that everyone is mostly working together and only conflicting/at odds for show ("The elf and the dwarf are arguing again." "Oh, let them be, they're actually good friends.") and she is operating on the idea that each character might have very different agendas or less concern for the group, you're going to have clashes.
Being clear about what kind of game this is, helps her decide if this is the game she wants to play or not.
Best Answer
If talking through the problem with him - usually the go-to answer for this type of question - doesn't work, then you have to move on to the next step: impose consequences for his behavior.
The best way to do this is to kick him out politely. Sit him down privately and say that games are meant to be fun for everyone, but he is clearly not having fun. Phrase it that way, that it appears he's not having fun - because if he really isn't enjoying himself, then he'll see your point; or he might say that he is enjoying himself, at which point you need to explain that he's acting as if he doesn't. Or, if his fun is derived from nitpicking you, he'll be forced to own up to that (or deny it, in which case again explain that his behavior suggests he isn't enjoying himself). Add that he is, in turn, making the game not fun for you. If you have statements from other players who also don't enjoy his behavior, you can add "and others in the group", but absolutely don't name names. Then tell him that since he doesn't enjoy your game, it's time for him to stop playing. Tell him his character will be dealt with appropriately, that you wish him the best, and that you hope to someday game with him again in a setting more enjoyable to you both. End the conversation there - get up and walk away if you have to.
It absolutely sucks to have to boot someone from your game, but if he's this much of a problem and you've already tried talking to him, with no success, then you can't keep him around. He will burn you out, make your game toxic to you and probably your other players, and generally ruin everyone's good time.
There are other ways to impose consequences, such as imposing an in-game penalty on him when he starts trying to control your NPCs, docking XP, or verbally chastising him ("You do not control the NPCs. Please be quiet."); however these usually feel punitive to the problem player and will probably just make things worse. But if you honestly believe that he can be convinced to stop nitpicking, you can try them. You should note that using these will probably end up being a passive-aggressive way for you to kick him out anyway, by making him so miserable and frustrated that he table-flips and walks out - not the ideal solution. It can also make your other players upset with you and sympathetic to the problem player, since it appears you're "unfairly" picking on him - so again, use with caution.