Hi!
To the best of my knowledge, and as confirmed by rospy and rosccp documentation, there is no option to do such a thing. As for the not to drop anything at all part, you can try to achieve such a behavior by increasing a lot your queue, though I would not advise you to do so.
Alternatively, you could implement your own queue. E.g. in Python you could use the queue library to implement your own queueing method. The idea would be to have a subscriber that just receives the message (maybe unpacks it), and adds it to the queue. You can check if the queue is full via the Queue.full()
method, and, for example, decide to discard the newest instead of the older message. Be aware that this will work smoothly if and only if the operations described above are faster than the rate at which messages are sent to the subscriber.
Then, you will have a forever loop in your node that looks into your queue, selects the message to process (based on your preferred criteria), and do your awesome stuff!
TL;DR: such option(s) do not exist, but you can implement your own logic to achieve the same result!