I have in mind two possibilities:
1. Basically if you can access from ThingWorx platform the REST
of the device, than I think the easiest way would be to create a service
which makes a REST call to the device, and then puts the received
parameters of the device to some property of a Thing.
You can do this by using the GetText function snippet (search the wiki for that).
You can customize the function to accept a parameter (address of the device or SN) if you have several devices and want to use the same function in order to get the properties for each one.
And you can create a timer that can execute that function on a regular basis in order to keep your platform Things synchronized.
2. The other way around, if you can do URL calls on top of a WS connection, from the Device to the ThingWorx platform, than you can build a custom url like "http://yourIPaddress:yourPort/Things/YourThingName/Properties/PropertyName?method=put&appKey=yourAppKey&x-thingworx-session=true&value=yourSensorValue" and do regularly HTTP calls to this URL from inside your C program.
Hope it helps!