Dear Log,
Today's Elisp dalliance:
(defun functions-table ()
  "Make a list of all functions"
  (interactive)
  (symbols-report "*Functions*" 'fboundp))
(defun variables-table ()
  "Make a list of all variables"
  (interactive)
  (symbols-report "*Variables*" 'boundp))
(defalias 'function-table 'functions-table)
(defalias 'variable-table 'variables-table)
(byte-compile
(defun symbols-report (bufname pred)
  (switch-to-buffer bufname)
  (erase-buffer)
  (let (syms)
    (mapatoms
     ; ^^ for each symbol in obarray
     ;  (in no special order)
     (f_x
      (when (apply pred (list x))
	(setq syms (cons (symbol-to-string x) syms)))))
    (setq syms (sort syms 'string<))
    (dolist (sym syms)
      (insert (concat sym "\n")))))
)
I'm lazy and haven't made those thingies actually link to the describe-function or describe-variable screens for each.
Edit: Addendum:
(defmacro f_x (&rest Body) "Make these expressions a function with 'x' holding its one parameter" (list 'function (cons 'lambda (cons (cons 'x nil) Body))))