Yes, sort of, for a small number of tasks. You cannot use software timers, as they share a single queue and run sequentially at the same priority.
What you can do is run each in a separate thread. Each thread can have its own priority. Higher priority threads will interrupt a lower priority thread that has not yet yielded.
If your task is periodic you can use
os_thread_delay_until to wait until its time to start. If it’s triggered by an event you can use a queue.
The caveats are that the FreeRTOS scheduler only interrupts a thread a 1 millisecond intervals if it does not yield. And since each thread has its own stack, you can run low on RAM if you have too many.