theres lots of ways you could make it harder for someone to do it(like above), but you cant really stop them.
one example would be to use sessions to store some data on the server. when they request the form, set a session variable to note that they got the form from you.
then when accepting the form, make sure that session variable exists.
but that will not stop them from getting the form from you, and then submitting thier own form from somewhere else.
you could even store a key in their session variable, and use that key to encrypt/decrypt the form field names, and do this both serversie and clientside with js, but all it will do is make it harder for them, it wont stop them.