You can use Lilypad Arduino Mainboard. It has 14 Digital I/O. Being size constraint, you can use 4 seven segment display to show time for which 8 GPIOs will be used in multiplexing. Now left with 6 GPIOs, 4 can be used to interface LEDs and two can be interfaced to switches for setting alarms. Of the two switches, one can be used to increament hours or minutes in loops and use other switch to transit to minutes from hours and then confirm alarm. On pressing the second switch only, the set alarms can be navigated otherwise the current time will be displayed on 7-segments by default. The board has 6 PWM pins of which 1 can be used to control motor.