Can we call GPRS HTTP request asynchronously in Arduino?
Sure there is. All you're doing is reading and writing serial data. All you have to do is learn how to do that without blocking. 

Most code I see bandied around is of the form:

Send AT command
Delay for numerous seconds
Read and discard anything that might be there
Send another AT command
Delay for more seconds
Read and discard anything that might be there
... etc ...


That is completely the wrong way to do things.

Instead you should be using non-blocking reading to look for an actual OK response from the AT commands that you have sent and use that to progress through the different stages of a Finite State Machine.

Some reading resources from my blog:


Reading Serial on the Arduino
The Finite State Machine
The Evils of Arduino Strings
Splitting Up Text in C