The thesis is more research-oriented. You study the existing literature about a topic, come up with your own ideas for broadening or expanding the field in a new way, and test out your hypotheses if applicable (e.g. writing a program to see if you get results), and then culminating all of your work into an original paper (a thesis) describing your background research, experiments, and results.
The project is implementation-oriented. One doesn't come up with original research, but studies existing techniques to develop an application of significant size (usually something of a much bigger scope than in any programming class). For example, a recent Masters student implemented the game of Go in Java. This involved learning a lot about AI and some advanced aspects of the language.
The scope of the project should be comparable to two courses worth of work: at 4 class hours/week and 8-12 hours/week outside class, that amounts to 240-320 person-hours of work for the project or thesis. That's the equivalent of 6-8 weeks of full-time work.