It seems possible that there is some confusion here between have used as an auxiliary verb, and have used as a standalone verb. You say that you "choose has because because it denotes the action that he has a mill in the past and he is still having it." That would be the case if the sentence were
He has owned a mill.
However, in this case, have is a standalone verb indicating possession. Just replace it with possess or own and you will understand the correct usage. So, yes, (b) is correct, but perhaps not for the reason that you suggested. In this case, has is simple present, indicating that this individual currently owns a mill. Other examples of have conjugated as a verb in its own right:
He had a mill...but he may not any longer
He has had a mill...for a while now.
Note that the second sentence is what you were talking about: he had a mill in the past, and he still has it. As well, we do not usually say that he "is still having it." When it comes to verbs that refer to states, not actions, the present is generally preferred over the present continuous. By contrast, as you probably are aware, the present continuous is ubiquitous when it comes to current actions, and in such cases substituting the simple present may well imply habit rather than current behavior: I eat vs. I am eating.