I would look at something in this family:
http://www.keyence.com/products/sensors/fiberoptic/fiberoptic.php
with an appropriate fiber.
I have only tried to use a prox to detect a pre-existing sprocket. I didn't have a whole lot of luck. You will need a fairly small diameter prox to resolve individual teeth. Unless you machine a sprocket, the normal axial and radial runout of an off-the-shelf sprocket can often carry the sprocket out of the range of the prox. This will cause you to miss counts.
How fast is this chain going? If you go with the sensors I linked to above you can get 20 microsecond response if needed. Will your controller be fast enough to pick up individual links?
Keith