hi
as i know, your answer in "NO"
because microcontrollers can execute one instruction per clock(s). so you can execute two program simultaneously. but you can write a program that switch between two programs.
you can not execute dos in 8051 because 8051 has not 80x86 instructions set.
regards
Just to add to hr_rezaee's excellent reply -
Microcontollers use an RTOS (Real Time Operating System) to simulate running more that one task at a time. Usually the RTOS has a scheduler that shares CPU cycles between the tasks. It takes advanced design techniques to use an RTOS correctly.