Like you said it's mostly mental. If he is hitting slow moonballs he has time to recover and won't be out of position too often so only be aggressive when you have a good opportunity. Also, when you do have the guy moving and in a defensive position try to finish at the net. I'm more of a baseliner but when I play defensive type players I end up at the net a lot. You also probably don't want to try to play 30 shots rallies and wait for him to miss if that's no how you typically win matches. Don't try to beat him at his own game. Once you figure out a game plan to beat this player you will be set.
Please excuse my punctuation and grammar.