OpenMP was not designed to give this type of information. If you look at the original design, work is given to threads. However, there is no mapping between threads and processors. That was left to be handled by the operating system. We have since found that because of data locality, cache reuse, etc., there are times when it is very profitable to map threads to processors in certain ways. In fact, at this point, almost all of the vendors have some way to specify this mapping (binding threads to processors). However, I don't believe any implementation allows you to get the binding information or the thread mapping if the binding is off. Therefore, there is no way for the user to find out which processor is being used.
There is also the problem of the observation affecting what is being observed. Since OpenMP is added on to a base language, anything done by the user to find out about how much time is being taken or what processor is being used will have an affect on the running program.
So I guess my question to you is why do you care?
If you are interested in profiling your program, there are tools that different vendors already provide to look at this that have low relative overheads by looking at the running process from outside the process. There is a whitepaper that describes an interface that can be used to do this (if a vendor decided to do implement the whitepaper).