Calling completion-popup-frame when completing, bound to C-Down, displays the available completions in a separate Emacs frame positioned below the point. You can then use the usual Emacs motion keys to select a completion candidate and provisionally insert it in the buffer (up, down, M-p, M-n, C-p, C-n, pageup, C-v, M-v, pagedown, home, M-<, end and M->; you can also supply numerical optional arguments to these, as usual).
You can also toggle between displaying just the most likely completions or displaying all possible completions using completion-popup-toggle-all, bound to M-tab and M-/. If there are a lot of possible completions, it can take a while before they're displayed. If it's taking too long, use C-g to cancel. To dismiss the pop-up frame, use completion-popup-frame-dismiss, bound to C-up and M-up.
The pop-up frame can also be displayed automatically when completing, optionally after a time-delay. See Auto-Show a List of Completions.
The following variables affect the pop-up frame: