No, this is not possible. In order to call an action based on a request body, there's what's referred to as the modelbinder, that figures out how the data in the request should be constructed to fit the parameters of the action method. Without a concrete type to work with, the modelbinder has no guidance.
UPDATE
Just to explain a little better. Typically when dealing with generics, you must specify the type either explicitly (using the <Type> syntax when calling the method) or implicitly (by passing in an instance of something for a generic parameter, you're saying that the generic type is the type of that instance).
However, because of the way an action is called, there is no way to do either. The action cannot be called until MVC can determine what it should pass as parameters to it, and it cannot do that without inspecting the request for something that will work. In order to determine if there's something in the request that can be used as a parameter, MVC must know what kind of thing needs to be passed into the action first. That is why you cannot have a generic action. Without MVC knowing before hand what type(s) it's dealing with, it can't figure out what to do with the request.