Can you provide more details on the usecase? There might be an alternate solution to achieve what is intended.
To answer the question directly - the service can set the property on the Thing directly.
If the service is written in the same thing -- me.myproperty=<value>
You got the answers in the reverse order
First, as Tori said, look at ContentLoaderFunctions Resources, where you have plenty of services to call remote web services ( REST calls: POST, GET, DELETE,... , PostJSON/Text/XML, GetJSON/Text... ).
Then once received the result and parsed accordingly depending on your remote web service, you can use what Sajid said, set Thing current properties ( me.propertyName=value, or another thing Things["thingName"].propertyName = value; )