Assuming that free will exists (for more on this fascinating metaphysical issue, look up determinism), can it be said that Data actually has free will? His actions are controlled by programming, hence his actions are determined by his programming, however Data is able to make choices. So, does Lt Cmdr Data actually have free will, or are all of his actions pre-determined?
This is tangentially addressed in TNG: Measure of a Man. In this, Data is put on trial to determine if he is sentient and thus a free being, or non sentient and property. This is brought about by a computer scientist ordering Data to report to HQ for a risky brain duplicating procedure. Data threatens resignation rather than undergoing the procedure, which brings the accusation that he is property. During the trial, Picard demonstrates two characteristics of sentient life, that he is both intelligent and self-aware. The other factor (Measuring consciousness) can't be "proven", so Data is given his freedom to explore it.
During the ending scenes, Data formally refuses to undergo the procedure. While it could be argued that this is merely self protection programming, that is refuted by the many times that Data places himself voluntarily in danger to help/rescue/prevent accidents to shipmates. I believe that these actions of refusing to submit to a human experiment that endangers him while also having the ability to place himself in danger for the benefit of others demonstrates that he has the ability (Free will) to choose his own actions.
Data generally behaves in a perfectly Asimov-law-like manner. Well, almost.
Data does not willingly hurt or kill humans (except when externally controlled or loaded with a different personality, but that hardly counts), nor does he ever lie (except if commanded by Picard to do so in order to save the entire ship crew's lives). He will follow every rule and every command to the letter and do anything (including risking his own destruction or even sacrificing himself in the end) to save humanoid life.
Data even has an explicit failover program which prevents him from doing evil and forces him to defend civilians against a perceived external threat (but, again, without ever applying deadly force), as shown in the Insurrection movie.
Nevertheless, at the end of The Most Toys, he picks up a varon-T disruptor which is not just a deadly weapon, but explicitly designed for a "particularly excruciating death" and shoots Fajo. Admittedly, Fajo is probably the single biggest asshole in the Star Trek universe that we get to see during the entire series. But still, when Data shoots him, there is no clear and present danger, and no urgent need to injure or kill. Fajo is an unarmed, frightened gimp.
That murder was probably justified and even well-deserved from the point of view of most humans, given what Fajo had done in the past and what he might possibly do in the future, but it is quite incompatible with Data's usual behavior.
Upon materializing, Data explains to the shocked O'Brien (who notices that the weapon had been fired) that the disruptor must have had malfunctioned due to interaction with the transporter beam, which is an obvious lie.
This proves that Data is very well able to make a decision and act against what we know as his usual programming, performing none less than cold blooded murder and covering up. Free will.
Your question is in fact two-folded: 1. If someone/something has free will, what behavior will he display in contrast to someone/something that has no free will. 2. Does Data show this behavior that implies free will?
Currently it's heavy debated if humans have free will and hence it's heavily debated if any behavior we show is one that indicates free will. So question #1 can't be answered easily. So let's assume, that humans have free will. Now we can compare Datas behavior to ours?
His decisions can be predicted. So can ours.
Sometimes he will do what he is told (e.g. scan for lifesigns) and sometimes he will refuse to (e.g. have his brain dismantled). So do we.
This decision is based on reasons (not to be confused with causes). With us it's the same.
There are some things he will never decide to do (e.g. if he's not messed with, he will never decide to hurt Gordie) - due to his programming. So won't we - due to our education.
Also due to his programming he has a set of things he tries to avoid (e.g. death of comrads or himself) and a set of things he is trying to achieve (e.g. become human). We are exactly the same.
So I'd propose (avoiding the first question) that Data has a free will, if you think we have a free will, and that he does not if you think we don't have on either. Now it's up to you: Do we or don't we? Philosophy-stackexchange is one click away!