can I design a User Interface to run on the arduino and display it with VGA?
Forget VGA. Arduino is not capable of that.

For display you can use a 16x2 LCD (only chars, not graphics) or an OLED display, which have graphic capabilities. There are in size from 0.96". There BW, but alse color models and touch sensitive ones. For input you use push buttons, or keypad.

Today best option for display is some model with I2C or SPI interfaces (to minimize wiring).

There thousand of projects in Internet. Search "Arduino OLED keypad" and you will find projects like http://www.instructables.com/id/Arduino-OLED-Calculator/:



This hardware impose some limits in the UI (thank god). What you have is a tradicional menu system: you present a menu, user choose an option, Arduino execute it. No help, no dropbox, no autocompletion, nothing, only the most basic "Press 1 for ..."

EDIT:

As Nick Gammon stated, it's possible to drive a VGA display from an Arduino, like this post and this other shows. The resolution are  20 characters wide by 30 characters deep (160 x 480 pixels) for the monochrome version and 120 x 60 pixels for the four colors version.

However, that capabilities doesn't match any of the standard VGA capabilities:


  The VGA supports both All Points Addressable graphics modes, and
  alphanumeric text modes. Standard graphics modes are:

640×480 in 16 colors or monochrome[2] (the latter matching IBM's lesser Multi-Color Graphics Array standard)
640×350 or 640×200 in 16 colors or monochrome (EGA compatibility mode)
320×200 in 4 or 16 colors
320×200 in 256 colors (Mode 13h)



The proposed alternatives achieves less resolution than a 1981 Sinclair ZX-81 (24 lines of 32 chars), takes two timers and half of Arduino RAM minimum (the color example left you with 200 bytes RAM and takes a third timer with it).

So, in practical terms, VGA is not an option.