The only part similar between them is that both are methods to change BIG-IP config, but that's it.
iControl (supposing you are talking about iControlREST a not about legacy iControl SOAP) is an imperative configuration method used to configure BIG-IP devices using HTTP protocol.
AS3 is a declarative method of configuration, this is a higher level of abstraction where you only decide only your goals and not how to get it. That means something like:
"I would like to have one device with one VS which load-balanced to a pool with 2 nodes"
In this previous example, you are not taking into account the order of creation of those objects. You are just declaring what you want.
Here is an much clear explanation of what AS3 is.
Another example of what the differences between imperative and declarative are.
BONUS: Actually, one much more intricate question would be:
What is the difference between AS3 and Ansible? 🙂
This could help you with that.