Technically there is nothing that can be acheived using property get/set code that cannot be replicated by using public get/set methods instead.
But accessing properties is so common and useful that a special syntax is provided for doing it and property syntax is treated in a special way by the compiler making it more efficient.
A property in C# is also known as an "accessor" method but again this denotes what it is used for more than to isolate anything unique about this kind of method.
A property differs primarily only in that you can execute a different code path depending not on the method name but how and where it appears:
int x Foo.Bar - executes the Get code
Foo.Bar x - executes the Set code
But as above this is owing to the syntax and compiler not to a logical difference in how properties work as opposed to public methods.
This is a really good question by the way :)