I am negotiating a contract with a programmer for a profit sharing deal on a large project. In the past when I have worked with programmers I requested lots of small changes that were not specified. Could I add a provision for up to a certain amount of time to be spent on any small changes that were not specified?
What I'd do instead is get all the requirements you want and anticipate to be set in stone with your contract (your programmer should also have conducted a needs analysis to determine what needs to be done if you hadn't done so yourself beforehand) rather than adding changes left and right after the agreement's been made.
What we tend to do (and by we I mean people in the industry since I'm just a lone wolf) is agree on what needs to be done, quote for it, and state that any additional changes will constitute additional work and will also incur additional fees (it's a great way to prevent scope creep - which is exactly what these extra changes are).
It is great that you are thinking about and planning for this ahead of time! Since your changes will be small, I think it is fine to build extra hours into the project contract exclusively for minor revisions and added functionality. Just remember that sometimes what seems like a quick change to you may actually be a lot of work for the programmer!
For work beyond the hours set aside, additional fees will be required.
Perhaps you should consider adding a "phase two" for this project. As you know, things can come up during a project that neither you nor the developer had considered during the contract and planning phase. If the change isn't critical for deployment, it would be a great candidate for phase two of the project. That should help keep the main project within scope and you'll still get the changes you want in a timely manner.