What is mean by 3 level program memory lock?
Its purpose seems to be to restrict access to the program memory, to prevent reading out the program from a controller.

There are three levels (plus one unprotected level), see the bottom of page 5.