Macbeth does have free will. The witches showed him what they did because they knew that he was susceptible to suggestion. They knew that if they put the right ideas in front of him they could manipulate him. It worked, didn’t it?
It is, I think, the single biggest problem of the play. Are the witches having any influence over Macbeth's actions: or are they simply foreshadowing things that he would do anyway? And as ever, with Shakespeare, there's no right answer: it depends how you read the text.
We know that the witches cast some sort of spell, shortly before the first entrance of Macbeth and Banquo:
Peace! The charm's wound up.
However, precisely what this spell does or is designed to do is never made clear in the text of the play. Moreover, they do prophecy that Macbeth will become king - but Macbeth only becomes king as a result of his own actions (killing the reigning monarch, Duncan). Would it have happened anyway, even if Macbeth had sat back and done nothing? Who knows.
The prophecies the witches make in the apparition scene also all come true: but none of them lead Macbeth to do anything that he wouldn't have been very likely to do otherwise - with the possible exception of killing Macduff's children and family ("Beware Macduff").
In short then, my reading tends to be that the witches, to paraphrase something Macbeth himself says, marshall him the way that he was already going. But then, of course, why put them in the play in the first place? If you think they do influence Macbeth - then is it really a tragedy, when the protagonist has no involvement?
As you can see, Shakespeare gives us more questions than answers - as usual!
Macbeth is only controlled by free will. 'Macbeth' being a tragedy would mean that the hero would ultimately bring upon his own downfall. Thus, to bring on downfall upon ones self would mean choosing the actions that would cause it.