It is possible, but there are some things about it you should note:
- You still have to have caller ID supported by your carrier/provider. A basic POTS line won't include this information unless the carrier has done some extra work to add it. So you can't do this to avoid paying an extra caller ID fee.
- It's not built into .Net. You'll have to call into the basic TAPI library. I've never worked with this library myself, so that's as much as I can tell you.