Using scriptListener, you would record the playing of one action to get the code. Then make a function with the code to just replace the name of the action. Then all you do is create the UI with however many buttons you want and assign an onClick function to each button that calls the action playing function and sends it the proper name.
A script has to be executed/run. While the script is running, you can't do anything else in Photoshop, except use the script interface to select your action. When the script OK button is pressed, the script UI will close and the action will be run, allowing you to then use the standard Photoshop interface. The reason I mention this is to set expectations.
A mockup of a basic interface, which could either reference installed actions by set/name or the action could be converted to script code so that the script is self contained without relying on an action set being loaded:
The extension that @PECourtejoie linked to uses a script, however, it is wrapped in an "extension" floating panel which offers the added benefit that it can remain open and behave like other native interface elements.