Get him to use automated execution-verification tools. (See my answer at "How to ask questions to an obsructionist?")
If he overcomplicates and does not use SCC, he is not an excellent developer -- these things are important parts of software engineering.
In the very unlikely event that he has some irreplaceable brilliance in areas like algorithms, assign him to work in that area, e.g., defining algorithms, and get a real programmer to do the coding.
Use static analysis code to understand and clean up his code.