Set-ACL will do what you need. You just need to tap into the .NET framework a little.
Have a look here http://technet.microsoft.com/en-us/library/ff730951.aspx
You basically use some .NET calls to create an ACL permissions object, attach a resource (like a user) that you are talking about, then apply it to the file or object in question.
Here's the syntax of what you'll be finding (in that article)
$colRights = [System.Security.AccessControl.FileSystemRights]"Read, Write"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType =[System.Security.AccessControl.AccessControlType]::Allow
$objUser = New-Object System.Security.Principal.NTAccount("wingroup\kenmyer")
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule `
($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType)
$objACL = Get-ACL "C:\Scripts\Test.ps1"
$objACL.AddAccessRule($objACE)
Set-ACL "C:\Scripts\Test.ps1" $objACL