There’s tools out there like BetterTouchTool and I imagine several others than allow you to do this and more.
BTT cannot add a physical Escape key.
Since it seems like we’re already near tongue-in-cheek but still functional: it doesn’t need to; there’s a perfectly good oversized one sitting at the left end of the home row. If you’d like, you can even make it both Escape (by itself) and Control (when used in combination with another key).