As a good PM may think "if the task says 'create a timer', then focus on the task and write a timer and nothing more".
As a good developer may think a little bit beyond: "is this enough or must do something around?", "is this approach better, given the target system architecture", "has any sense to reinvent the wheel?", and so on, and so on.

If choose reinventing the wheel, then no, there is not necessary re-do everything from MFC. Just write (once and forever) a lightweight wrapper containing what you need. Just keep the MFC "philosophy" because it is closest to Windows native and is according to KISS (no multiple inheritance, no sophisticated patterns, etc.).
Or better, do NOT reinvent the wheel and use an existing library. If don't like MFC (or this is required) then may use for example ATL. Creating a window class and handling messages (like WM_TIMER) by using ATL (or WTL extension) is no sweat and do not introduce the overhead (although this one is an exaggerated issue) like MFC does.