I think "Do you speak good English?" is correct given that the adjective "good" indicates the quality of his English.
Consider the similar phrase, "Did you eat good pie", versus "Did you eat pie well". In the pie case the former is correct because you're referring to the quality of the pie. In the case at hand, we're talking about the quality of the speaking.