You're asking several questions that don't seem to have much to do with one another.
Boost.ProgramOptions is a tool for parsing command-line options. As an extension of this tool, it can also take these options from a file format. These are not "config files"; these are options files. They contain options that look like a series of command-line options.
You can conceptually think of it like a .ini file (or something you might get out of Boost.PropertyTree). But the format ultimately is still that of the command line options: --option-name "parameter" -o "next Param"
.
The "Lua equivalent" to Boost.ProgramOptions would therefore be a tool for parsing command-line options. There are several options you may choose from for this task.
If you want to have configuration files that are built on Lua script, then you should do that. Lua's table constructor makes for a pretty reasonable and human-readable file format, much like JSON for JavaScript. However, these would have no direct connection to command-line options; it would simply be a Lua script you read as a Lua table and process as you see fit. You couldn't copy and paste fragments of this table onto the command line and expect to get reasonable results the way you can for Boost.ProgramOption's option files.