I'm not aware you can set a specific calling number per ephone - but one possibility is to add a translation-rule to your configuration that will translate all numbers of the phone to the one you want as caller-id.
Example - you have 200, 201 and 202 as lines on your ephone but want to use 205 as caller-id: then add a translation-rule that translates 200, 201 & 202 to 205 (or to your PSTN prefix plus 205 if that's what your provider wants to see). It's not an elegant solution, not very scalable but it will do the job for what you are looking for. This is independently of the phone-model that you are using as it's done in IOS.
You can apply that to your outgoing port (in case of ISDN) - so only need to apply it once. Can also apply it on the dialpeer levels.
Configure Multicast Paging on the Cisco IP Phone 7800 Series or 8800 Series Multiplatform Phone
The Cisco IP Phone 7800 and 8800 Series Multiplatform Phones provide voice communication over an Internet Protocol (IP) network...
Add Call Park on a Cisco 7800 or 8800 Series Multiplatform Phone Key Expansion Module
Call park allows the user of the phone to put an incoming call on hold so that the call can be retrieved on another phone. A call is park...