I think the OP is confused by marketing (that you need more core to do more things)... One does not need multi-core for the machine to multi-tasks.
Concurrency does not start with multicore or even hyperthread. Pre-hyperthread late Pentiums has multiple instruction pipelines and multiple instruction decoders. So, multiple things are going on within the same clock-cycle and within the lone core. Mean time, time-slicing and time-sharing was nearly as old as the first computer.
If I may inject a reminder as a segway back to the OP's question.
The Arduino UNO is a dual processor board. The ATMEGA16U2, and the ATMEGA328. The 16U2 subsystem handles communication and other board-management tasks at the same time while 328 handles the user-written logic.
But, these are too esoteric for typical users. However, it explains why the question "what do you mean by doing things at the same time" matters...
Now to the questions:
Can it run two application at the same time? No.
Can a single application do multiple tasks at the same time? Yes
One can view the loop() function as a time-slices, and you can have it call say 4 different things - each one returning gracefully if it has nothing to do or if it completed what it must do. so the loop() essentially do:
void loop() {
doTask1();
doTask2();
doTask3();
}
** The tasks are done in sequence, however, the time delta between tasks is so short it can be view as "at the same time" in most cases. You may view it as cheating, but even multi-core system shares the same memory so they can not really both read the same memory at the same clock cycle. (or the same USB port, or the same whatever)
This requires each task to come back quickly when it is done, and not sit there and waste time such as a delay(nnnn) blocking everyone else. This was called "cooperative multi-tasking" by some, and was the cornerstone of early (pre Windows95) Microsoft Windows and other "Operating Environments". Many did not call Windows an "Operating System" then since it was on-top of the real OS which was PCDOS or MSDOS).
So, task1 could be running your thermostat, task2 could be running your air-pump for the fish tank and task3 could be a simple clock display. Key is, they are all integrated into the same single program.
So, you can do multiple tasks as long as you integrate all the tasks into the same program.
Even while Windows was doing cooperative multi-tasking, other systems implemented preemptive multi-tasking. Notably DoubleDos which partitions the system into two, preemptively take control away from one application and switch over to the other based on time. So you have one physical machine divided logically into two, each one has a slice of time (time-slicing).
Preemp or not, how ever many cores you got, you merely decreases the percentage of the time one task waits on another - as no doubt at some point, it will hit a piece of hardware inside that is not sharable. Arduino has one core, so everything is serialized. With say a two-core arduino, some things still must be serialized (such as the ADC).
The OS (in this case, everything under the loop() call) controls how it time-slices and your lone loop() is your time-slice which is "all the time Arduino management doesn't use". You can serialize your many tasks you want it to do, giving each a part of your time to do it with, and write it each task with in mind to "cooperate" - others are waiting. You can do as many tasks as you want within the resource limit.
So, I think that answers your question about "can Arduino do multiple things at the same time" and explained a bit why others are kick the question back with "what do you mean..."