In my experience as a developer most software development can be done sufficiently well by a person with an average skill level.1 Technical prowess is a requirement, but does not have the central role one would naiveley expect.
The one problem of singular importance any non-trivial software development must solve is communication, because non-trivial software is all about communication, and non-trivial software is produced by a division of labor. Division of labor crucially relies on communication. If the parts do not interact well in the development process, they will not interact well in the product.
This leads directly to my advice:
Do not employ anybody with a communication problem, let alone somebody exhibiting the pathological behavior you describe.
You may have no choice if there is only one developer with the extraordinary technical skills needed to solve specific problems; but my experience working with such individuals was unpleasant. They tend to spoil the team spirit and fun at work which makes it easier for the team to perform.
1 Granted, a few problems are technically hard and need exceptionally skilled developers. Also software design probably should be done by somebody who is a bit brighter and more skilled than the average, mostly because design errors are so expensive.